<div class="gmail_quote">2009/1/19 John Fouhy <span dir="ltr">&lt;<a href="mailto:john@fouhy.net">john@fouhy.net</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2009/1/20 Emad Nawfal (عماد نوفل) &lt;<a href="mailto:emadnawfal@gmail.com">emadnawfal@gmail.com</a>&gt;:<br>Of course, this is not necessarily the best answer for your particular<br>
problem. &nbsp;The problem with sorting is that you have to look at some<br>
elements more than once. &nbsp;For short lists, it&#39;s not a problem, but it<br>
can slow you down on bigger lists. &nbsp;You could also find the shortest<br>
element by going through the list, remembering the shortest element<br>
you&#39;ve seen so far. &nbsp;This will be quicker if you only want to find the<br>
single shortest.<br>
<font color="#888888"></font></blockquote><div><br>Here&#39;s the first thing that came to mind:<br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
from sys import maxint<br><br>def MinMax(Sentence=&quot;&quot;):<br>&nbsp;&nbsp;&nbsp; minLen = maxint <br>&nbsp;&nbsp;&nbsp; maxLen = 0<br><br>&nbsp;&nbsp;&nbsp; for word in Sentence.split():<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) &gt; maxLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxWord = word<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxLen = len(word)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) &lt; minLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minWord = word<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minLen = len(word)<br>&nbsp;&nbsp;&nbsp; return minLen, minWord, maxLen, maxWord<br><br><br>print MinMax(&quot;No victim has ever been more repressed and alienated than the truth&quot;) <br>
</blockquote></div></div><br clear="all">Using sys.maxint to prime minLen is overkill, of course - &quot;antidisestablishmentarianism&quot; is only 28 letters long, after all - but it should be larger than any word you can expect to see.<br>
This doesn&#39;t catch ties, though... could do that like so:<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">&nbsp;&nbsp;&nbsp; for word in Sentence.split():<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) == minLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minWord.append(word)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) == maxLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxWord.append(word)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) &gt; maxLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxWord = [word]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxLen = len(word)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if len(word) &lt; minLen:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minWord = [word]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minLen = len(word)<br><br></blockquote><br>-- <br><a href="http://www.fsrtechnologies.com">www.fsrtechnologies.com</a><br>