[Tutor] list sort problem solved

Rayon evosweet at hotmail.com
Sun Sep 20 16:42:04 CEST 2009


list = bigMethod() # this method makes the list

list.sort() # here is the sort thanks
for x in list: # out put the sort
    print x

it all works Thanks a lot
--------------------------------------------------
From: "Dave Angel" <davea at ieee.org>
Sent: Saturday, September 19, 2009 7:46 PM
To: "Rayon" <evosweet at hotmail.com>
Cc: <tutor at python.org>
Subject: Re: [Tutor] list sort problem

> Rayon wrote:
>> ok so here it is I think  this one should be very clear:
>>
>> I have some data in a list, the data in question:
>> 0.0046,0.095,0.0904,521456,['MCI 521456 0.0904'],['ATT 521 0.0919'],['IDT 
>> 521 0.095'],['None']
>> 0.0083,0.0192,0.0109,39023821,['MCI 39023821 0.0109'],['ATT 39 
>> 0.012'],['IDT 39 0.0192'],['SPR 39 0.0135']
>> 0.042,0.0681,0.026,73462,['MCI 73462 0.0260'],['ATT 7 0.026'],['IDT 73462 
>> 0.028'],['SPR 7 0.0681']
>> 0.0176,0.1035,0.0859,126872,['MCI 126872 0.0859'],['ATT 1268 
>> 0.0919'],['IDT 126872 0.1035'],['None']
>> 0.0215,0.1614,0.1399,5032130,['MCI 5032130 0.1614'],['ATT 5032130 
>> 0.1399'],['IDT 503 0.152'],['None']
>> 0.0206,0.0385,0.0179,1868,['MCI 1868 0.0179'],['ATT 1868 0.0385'],['IDT 
>> 1868 0.036'],['None']
>> 0.0325,0.087,0.0545,5027889,['MCI 5027889 0.0602'],['ATT 5027889 
>> 0.0545'],['IDT 502 0.087'],['None']
>> 0.0325,0.087,0.0545,5027888,['MCI 5027888 0.0602'],['ATT 5027888 
>> 0.0545'],['IDT 502 0.087'],['None']
>> 0.0046,0.095,0.0904,521455,['MCI 521455 0.0904'],['ATT 521 0.0919'],['IDT 
>> 521 0.095'],['None']
>> 0.1292,0.1762,0.047,5989,['MCI 5989 0.1762'],['ATT 598 0.05'],['IDT 5989 
>> 0.173'],['SPR 598 0.047']
>> 0.0706,0.2011,0.1305,1284499,['MCI 1284499 0.2011'],['ATT 1284499 
>> 0.1932'],['IDT 1284499 0.1305'],['None']
>> 0.0325,0.087,0.0545,5027881,['MCI 5027881 0.0602'],['ATT 5027881 
>> 0.0545'],['IDT 502 0.087'],['None']
>>
>> my problem is that I want to order it by the first item so for line 
>> number one that would be  0.0046: this value is not unique it might 
>> repeat, if the last 10 values like this that might be the same and there 
>> are the lowest in the over list. I want them first when I display this 
>> list and the bigger  values after in order is size.
>>
>>
> I'll have to make some assumptions, please correct or confirm them.
>
> Each line of your message represents one item in a list.  Each such item 
> is in turn a sublist.
>
> Each of these sublists contains 3 floats, an int, and a few more 
> subsublists
>
> Each of these subsublists contains a string
>
> Anyway, you want to sort the top-level list.  Since the first item in each 
> sublist is a float, by default they will be ordered by the first item, 
> which is what you're asking for.  In case of a collision, the second item 
> is examined, and so on.
>
>      mylist.sort()
> will sort the list in-place, based on the first element of each item in 
> the list
>
>
> mylist = []
> mylist.append( [0.0046,0.095,0.0904,521456,['MCI 521456 0.0904'],['ATT 521 
> 0.0919'],['IDT 521 0.095'],['None']])
> mylist.append( [0.0083,0.0192,0.0109,39023821,['MCI 39023821 
> 0.0109'],['ATT 39 0.012'],['IDT 39 0.0192'],['SPR 39 0.0135']])
> mylist.append( [0.042,0.0681,0.026,73462,['MCI 73462 0.0260'],['ATT 7 
> 0.026'],['IDT 73462 0.028'],['SPR 7 0.0681']])
> mylist.append( [0.0176,0.1035,0.0859,126872,['MCI 126872 0.0859'],['ATT 
> 1268 0.0919'],['IDT 126872 0.1035'],['None']])
> mylist.append( [0.0215,0.1614,0.1399,5032130,['MCI 5032130 0.1614'],['ATT 
> 5032130 0.1399'],['IDT 503 0.152'],['None']])
> mylist.append( [0.0206,0.0385,0.0179,1868,['MCI 1868 0.0179'],['ATT 1868 
> 0.0385'],['IDT 1868 0.036'],['None']])
> mylist.append( [0.0325,0.087,0.0545,5027889,['MCI 5027889 0.0602'],['ATT 
> 5027889 0.0545'],['IDT 502 0.087'],['None']])
> mylist.append( [0.0325,0.087,0.0545,5027888,['MCI 5027888 0.0602'],['ATT 
> 5027888 0.0545'],['IDT 502 0.087'],['None']])
> mylist.append( [0.0046,0.095,0.0904,521455,['MCI 521455 0.0904'],['ATT 521 
> 0.0919'],['IDT 521 0.095'],['None']])
> mylist.append( [0.1292,0.1762,0.047,5989,['MCI 5989 0.1762'],['ATT 598 
> 0.05'],['IDT 5989 0.173'],['SPR 598 0.047']])
> mylist.append( [0.0706,0.2011,0.1305,1284499,['MCI 1284499 0.2011'],['ATT 
> 1284499 0.1932'],['IDT 1284499 0.1305'],['None']])
> mylist.append( [0.0325,0.087,0.0545,5027881,['MCI 5027881 0.0602'],['ATT 
> 5027881 0.0545'],['IDT 502 0.087'],['None']])
>
> def show_list_partial(thelist):
>    for item in thelist:
>        print item[0], item[1]
>
> show_list_partial(mylist)
> mylist.sort()
> print "--------------------------------"
> show_list_partial(mylist)
>
>
> DaveA.
>
>
> 


More information about the Tutor mailing list