[Zope-CMF] sorting lists...

Raphael Ritz r.ritz@biologie.hu-berlin.de
Mon, 31 Mar 2003 16:36:22 +0200


you might also want to look at
'sequence.sort' (Zope Book, API Appendix)
This is available in DTML, ZPT, and Python scripts.

Raphael

Antony Higgs wrote:

>Tres -> thanks, it works a treat!
>
>I have been trying to make it possible to use this same function to alpha
>sort different lists by different properties - not always by 'Title'.
>
>--------------
>##parameters=pType,alphaBy
>
>objects = context.contentValues(filter={'portal_type':pType})
>
>tried...
>objects.sort( lambda x, y: cmp( x.alphaBy, y.alphaBy ) )
>
>...and then...
>objects.sort( lambda x, y: cmp( x[alphaBy], y[alphaBy] ) )
>
>return objects
>--------------
>
>any thoughts anyone?
>
>
>thanks
>
>Antony
>
>
>Tres Seaver wrote:
>
>  
>
>>On Fri, 2003-03-28 at 04:46, Antony Higgs wrote:
>>    
>>
>>>Hi
>>>
>>>Using contentValues() to return a list of content, I am left with the
>>>following...
>>>
>>>[ <Document at /my_folder/doc_a_id>,
>>><Document at /my_folder/doc_b_id>,
>>><Document at /my_folder/doc_c_id> ]
>>>
>>>Is it possible to sort the list alphabetically on an attribute of each
>>>Document. ie. on 'Title'?
>>>
>>>...and if so, how?  ;-)
>>>      
>>>
>>The naive implementation would be:
>>
>>  objects = context.contentValues()
>>  objects.sort( lambda x, y: cmp( x.Title(), y.Title() ) )
>>  return objects
>>
>>For a really long list, you may want to create a "decorated"
>>intermediate (see the Python Cookbook for rationale):
>>
>>  objects = [ ( x.Title(), x ) for x in context.contentValues() ]
>>  objects.sort()  # tuples compare "lexicographically"
>>  return [ x[1] for x in objects ]
>>
>>Tres.
>>--
>>===============================================================
>>Tres Seaver                                tseaver@zope.com
>>Zope Corporation      "Zope Dealers"       http://www.zope.com
>>
>>_______________________________________________
>>Zope-CMF maillist  -  Zope-CMF@zope.org
>>http://mail.zope.org/mailman/listinfo/zope-cmf
>>
>>See http://collector.zope.org/CMF for bug reports and feature requests
>>    
>>
>
>--
>--------------------------
>Antony Higgs
>Web Editor/Administrator
>Creative Services
>Oxford Brookes University
>Oxford. OX3 OBR
>
>t: +44 (0) 1865 484459
>f: +44 (0) 1865 484456
>w: www.brookes.ac.uk
>--------------------------
>
>
>
>_______________________________________________
>Zope-CMF maillist  -  Zope-CMF@zope.org
>http://mail.zope.org/mailman/listinfo/zope-cmf
>
>See http://collector.zope.org/CMF for bug reports and feature requests
>
>  
>