Here is my question i have tuple1=[(1, 3), (3, 2), (2, 1)] i want to sort tuple based on last digit of each tuple so the resultant will look like this
output=[(2, 1), (3, 2), (1, 3)]
below is my code
i=0
for x in tuples:
c.append(x[len(x)-1])
last=sorted(c)
for y in last.iteritems():
if(y in x[len(x)-1]):
print x
#b.insert(i,x)
i=i+1
after running iam getting an error message
Traceback (most recent call last):
File "x.py", line 47, in <module>
sort_last([(1, 3), (3, 2), (2, 1)])
File "x.py", line 35, in sort_last
if(y in x[len(x)-1]):
TypeError: argument of type 'int' is not iterable
Specify the key argument in the sorted function.
>>> tuple1=[(1, 3), (3, 2), (2, 1)]
>>> output = sorted(tuple1, key=lambda x: x[-1])
>>> print output
[(2, 1), (3, 2), (1, 3)]
The sorted function (as well as the list.sort method) has an optional key argument which specifies what to sort the list on.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With