A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/attachments/20031013/a4413f54/attachment.html below:

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>


<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">

<meta name=ProgId content=Word.Document>


<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="cid:filelist.xml@01C3919F.74E81420">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
       &nbsppanose-1:5 0 0 0 0 0 0 0 0 0;
       &nbspmso-font-charset:2;
       &nbspmso-generic-font-family:auto;
       &nbspmso-font-pitch:variable;
       &nbspmso-font-signature:0 268435456 0 0 -2147483648 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
       &nbspmargin:0in;
       &nbspmargin-bottom:.0001pt;
       &nbspmso-pagination:widow-orphan;
       &nbspfont-size:12.0pt;
       &nbspfont-family:"Times New Roman";
       &nbspmso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
       &nbsptext-decoration:underline;
       &nbsptext-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
       &nbsptext-decoration:underline;
       &nbsptext-underline:single;}
span.EmailStyle17
        {mso-style-type:personal-compose;
       &nbspmso-style-noshow:yes;
       &nbspmso-ansi-font-size:10.0pt;
       &nbspmso-bidi-font-size:10.0pt;
       &nbspfont-family:Arial;
       &nbspmso-ascii-font-family:Arial;
       &nbspmso-hansi-font-family:Arial;
       &nbspmso-bidi-font-family:Arial;
       &nbspcolor:windowtext;}
span.SpellE
        {mso-style-name:"";
       &nbspmso-spl-e:yes;}
span.GramE
        {mso-style-name:"";
       &nbspmso-gram-e:yes;}
@page Section1
        {size:8.5in 11.0in;
       &nbspmargin:1.0in 1.25in 1.0in 1.25in;
       &nbspmso-header-margin:.5in;
       &nbspmso-footer-margin:.5in;
       &nbspmso-paper-source:0;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1294216520;
       &nbspmso-list-type:hybrid;
       &nbspmso-list-template-ids:423247172 1779071476 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
       &nbspmso-level-number-format:bullet;
       &nbspmso-level-text:\F0B7;
       &nbspmso-level-tab-stop:.5in;
       &nbspmso-level-number-position:left;
       &nbsptext-indent:-.25in;
       &nbspfont-family:Symbol;
       &nbspmso-fareast-font-family:"Times New Roman";
       &nbspmso-bidi-font-family:Arial;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */ 
 table.MsoNormalTable
        {mso-style-name:"Table Normal";
       &nbspmso-tstyle-rowband-size:0;
       &nbspmso-tstyle-colband-size:0;
       &nbspmso-style-noshow:yes;
       &nbspmso-style-parent:"";
       &nbspmso-padding-alt:0in 5.4pt 0in 5.4pt;
       &nbspmso-para-margin:0in;
       &nbspmso-para-margin-bottom:.0001pt;
       &nbspmso-pagination:widow-orphan;
       &nbspfont-size:10.0pt;
       &nbspfont-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>For Py2.4, I propose adding an optional <span class=SpellE><span
class=GramE>list.sort</span></span><span class=GramE>(</span>) argument to support
the decorate-sort-<span class=SpellE>undecorate</span> pattern.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>The current, pure Python approach to DSU is pure <span
class=SpellE>arcana</span>.<span style='mso-spacerun:yes'>&nbsp; </span>It is
obscure enough and cumbersome enough that <span class=SpellE><span class=GramE>cmpfunc</span></span><span
class=GramE>(</span>) tends to get used instead.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>Built-in C support for DSU requires much less skill to use, results
in more readable code, and runs faster.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>Raymond Hettinger<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>------ Concept <span class=SpellE>demonstraton</span>
------------------<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>def</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> sort(self, <span
class=SpellE>cmpfunc</span>=None, decorator=None):<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>&quot;&#8221;&#8221;Show how <span class=SpellE><span class=GramE>list.sort</span></span><span
class=GramE>(</span>) could support a decorating function&#8221;&#8221;&#8221;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span
class=GramE>args</span> = ()<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span
class=GramE>if</span> <span class=SpellE>cmpfunc</span> is not None:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=GramE>args</span> = (<span class=SpellE>cmpfunc</span>,)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span
class=GramE>if</span> decorator is None:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=SpellE><span class=GramE>self.sort</span></span><span class=GramE>(</span>*args)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span
class=GramE>else</span>:<span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=GramE>aux</span> = zip(map(decorator, self), self)<span
style='mso-spacerun:yes'>&nbsp;&nbsp; </span># Decorate<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=SpellE><span class=GramE>aux.sort</span></span><span class=GramE>(</span>*args)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=GramE>self[</span>:] = list(zip(*aux)[1])<span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>#
Un-decorate<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'>a = 'the Quick brown Fox jumped Over the Lazy <span
class=SpellE>Dog'.<span class=GramE>split</span></span><span class=GramE>()</span><o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>a)<span
style='mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span># the no
argument form is unchanged<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> a, '</span></font><st1:place><font
 size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Normal</span></font></st1:place><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> sort'<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>a, lambda <span
class=SpellE>x,y</span>: -<span class=SpellE>cmp</span>(<span class=SpellE>x,y</span>))<span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span># old code still works
without change<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> a, 'Reverse
sort'<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>a,
decorator=<span class=SpellE>str.lower</span>)<span
style='mso-spacerun:yes'>&nbsp; </span><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span># the new way is
fast, clean, and readable<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> a,
'Lowercase sort'<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'># <span class=GramE>The</span> decorator form works
especially well with mappings so that database<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'># <span class=GramE>keys</span> can be sorted by any field. <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>ages</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> = <span
class=SpellE>dict</span>(john=5, <span class=SpellE>amy</span>=3, <span
class=SpellE>andrea</span>=32, <span class=SpellE>henry</span>=12)<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>names</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> = <span
class=SpellE>ages.keys</span>()<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>location</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> = <span
class=SpellE>dict</span>(john='<span class=SpellE>alaska</span>', <span
class=SpellE>amy</span>='<span class=SpellE>spain</span>', <span class=SpellE>andrea</span>='<span
class=SpellE>peru</span>', <span class=SpellE>henry</span>='<span class=SpellE>iowa</span>')<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;


font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>names)<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> names,
'&lt;-- by name'<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>names,
decorator=<span class=SpellE>ages.__getitem</span>__)<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> names,
'&lt;-- by age'<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>sort(</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>names,
decorator=<span class=SpellE>location.__getitem</span>__)<o:p></o:p></span></font></p>

<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span


style='font-size:10.0pt;font-family:Arial'>print</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> names,
'&lt;-- by location'<o:p></o:p></span></font></p>

</div>

</body>

</html>



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4