another way to sort like l.sort(key=lambda x:(x[0][0], -x[1][0]))
Peter Otten
__peter__ at web.de
Tue Sep 7 10:32:12 EDT 2010
sajuptpm wrote:
> On Sep 7, 7:03 pm, Peter Otten <__pete... at web.de> wrote:
>> sajuptpm wrote:
>> > i need to implement l.sort(key=lambda x:(x[0][0], -x[1][0])) in
>> > another way .I want to know what the modification needed in the 'if'
>> > check to sort this list of tuples in k[0][0] ascending and k[0][1]
>> > descending.
>>
>> It seems you are not getting any closer to your goal. Perhaps it would
>> help if you could explain that goal clearly rather than describing the
>> means you are employing to achieve it.
>>
>> > I have a list of tuples.
>>
>> > l = [((30,50),(70)), ((50,20),(20))]
>>
>> By the way, (42) is not a tuple, it's an integer. To turn it into a
>> 1-tuple you have to add a ',':
>>
>> >>> (42)
>> 42
>> >>> (42,)
>> (42,)
>> >>> 42,
>>
>> (42,)
>>
>> Peter
>
>
> I have a list of tuples.
>
> l = [((30,50),(70,)), ((50,20),(20,))]
>
> for i in range(10):
> k = ((i+30,i+50),(i+70))#suppose creating new tuple in each
> iteration
> using some random value and in sert it into list.
>
> flag=True
> for i, v in enumerate(l):
> if v >= k:
> l.insert(i,k)
> flag = False
> break
> if flag:
> l.append(k)
>
> This code will give a list of tuples sorted in asc order.
> I need to change this code to sort this list by k[0][0] ascending and
> k[0][1] descending.
> What are the modifications needed in this code.
> I dont want to user sort() method of list.
>
> i need to implement l.sort(key=lambda x:(x[0][0], -x[1][0])) in
> another way .I want to know what the modification needed in the 'if'
> check to sort this list of tuples in k[0][0] ascending and k[0][1]
> descending.
As a thought experiment assume that your audience had never heard of tuples
or even Python. How would you then explain your goal?
Peter
More information about the Python-list
mailing list