Efficient Rank Ordering of Nested Lists

Cousin Stanley cousinstanley at gmail.com
Sat Aug 4 21:59:42 EDT 2007


> ....
> "beginner"'s advice to use a dictionary is also good 
> and may turn out to be faster, just because dicts are 
> SO fast in Python -- but you need to try and measure 
> both alternatives.  
>
> One way to use a dict ( warning, untested code ) :

  def rank_list( single_list ) :

      d = { }

      for i , item in reversed( enumerate( sorted( single_list ) ) ) :

          d[ item ] = i

      return [ d[ item ] for item in single_list ]


Alex .... 

  I tested it but I don't know how to fix it .... :-)

  Both Pablo's original version and Neil's version work
  but I get the following traceback from your version ....

Traceback (most recent call last):
  File "list_nested_rank.py", line 100, in <module>
    test_01( list_source )
  File "list_nested_rank.py", line 87, in test_01
    list_print( this_func( list_source ) )
  File "list_nested_rank.py", line 62, in rank_lists_02
    return map( rank_list , nested_list )
  File "list_nested_rank.py", line 56, in rank_list
    for i , item in reversed( enumerate( sorted( single_list ) ) ) :
TypeError: argument to reversed() must be a sequence



-- 
Stanley C. Kitching
Human Being
Phoenix, Arizona


----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----



More information about the Python-list mailing list