<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">#Here's my try:<br><br>vowel_killer_dict = { ord(a): None for a in 'aeiou'}<br><br>def devocalize(word):<br>&nbsp;&nbsp;&nbsp; return word.translate(vowel_killer_dict)<br><br>vowelled = ['him', 'ham', 'hum', 'fun', 'fan']<br>vowelled = set(vowelled)<br><br><br>devocalise_dict={}<br><br><br>for a in vowelled:<br>&nbsp;&nbsp;&nbsp; devocalise_dict[a]= devocalize(a)<br><br>&nbsp;&nbsp;&nbsp; <br>unvowelled=set(devocalise_dict.values())<br><br>for lex in unvowelled:<br>&nbsp;&nbsp;&nbsp; d={}<br>&nbsp;&nbsp;&nbsp; d[lex] = [word for word in vowelled if devocalise_dict[word] == lex]<br>&nbsp;&nbsp;&nbsp; print lex, " ".join(d[lex])<br><br><br><br><br>--- En date de&nbsp;: <b>Lun, 21.12.09, Emad Nawfal (عمـ نوفل ـاد) <i>&lt;emadnawfal@gmail.com&gt;</i></b> a écrit&nbsp;:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px;
 padding-left: 5px;"><br>De: Emad Nawfal (عمـ نوفل ـاد) &lt;emadnawfal@gmail.com&gt;<br>Objet: [Tutor] How can I make this run faster?<br>À: "tutor" &lt;Tutor@python.org&gt;<br>Date: lundi 21 Décembre 2009, 8 h 40<br><br><div id="yiv2030739517">Dear Tutors,<br>The purpose of this script is to see how many vocalized forms map to a single consonantal form. For example, the form "fn" could be fan, fin, fun.<br><br>The input is a large list (taken from a file) that has ordinary words. The script creates a devocalized list, then compares the two lists.<br>
<br>The problem: It takes over an hour to process 1 file. The average file size is 400,000 words.<br><br>Question: How can I make it run faster? I have a large number of files.<br><br>Note: I'm not a programmer, so please avoid very technical terms.<br>
<br>Thank you in anticipation.<br><br><br><br><br><br>def devocalize(word):<br>&nbsp;&nbsp;&nbsp; vowels = "aiou"<br>&nbsp;&nbsp;&nbsp; return "".join([letter for letter in word if letter not in vowels])<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>vowelled = ['him', 'ham', 'hum', 'fun', 'fan'] # input, usually a large list of around 500,000 items<br>
<br>vowelled = set(vowelled)<br>&nbsp;&nbsp;&nbsp; <br>unvowelled = set([devocalize(word) for word in vowelled])<br><br><br>for lex in unvowelled:<br>&nbsp;&nbsp;&nbsp; d = {}<br>&nbsp;&nbsp;&nbsp; d[lex] = [word for word in vowelled if devocalize(word) == lex]<br>&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; print lex, " ".join(d[lex])<br clear="all"><br>-- <br>لا أعرف مظلوما تواطأ الناس علي هضمه ولا زهدوا في إنصافه كالحقيقة.....محمد الغزالي<br>"No victim has ever been more repressed and alienated than the truth"<br>
<br>Emad Soliman Nawfal<br>Indiana University, Bloomington<br>--------------------------------------------------------<br>
</div><br>-----La pièce jointe associée suit-----<br><br><div class="plainMail">_______________________________________________<br>Tutor maillist&nbsp; -&nbsp; <a ymailto="mailto:Tutor@python.org" href="/mc/compose?to=Tutor@python.org">Tutor@python.org</a><br>To unsubscribe or change subscription options:<br><a href="http://mail.python.org/mailman/listinfo/tutor" target="_blank">http://mail.python.org/mailman/listinfo/tutor</a><br></div></blockquote></td></tr></table><br>
      <hr size=1>
Découvrez les photos <a href="http://www.flickr.com/explore/interesting/7days/"><b> les plus intéressantes du jour!</b></a>