Reputation: 2165
I need to sort a list of tuples in Python by a specific tuple element, let's say it's the second element in this case. I tried
sorted(tupList, key = lambda tup: tup[1])
I have also tried
sorted(tupList, key = itemgetter(1))
'''i imported itemgetter, attrgetter, methodcaller from operator'''
but the list was returned the same both times. I checked
sorting tuples in python with a custom key
sort tuples in lists in python
https://wiki.python.org/moin/HowTo/Sorting
Upvotes: 0
Views: 218
Reputation: 76194
I'm guessing you're calling sorted
but not assigning the result anywhere. Something like:
tupList = [(2,16), (4, 42), (3, 23)]
sorted(tupList, key = lambda tup: tup[1])
print(tupList)
sorted
creates a new sorted list, rather than modifying the original one. Try:
tupList = [(2,16), (4, 42), (3, 23)]
tupList = sorted(tupList, key = lambda tup: tup[1])
print(tupList)
Or:
tupList = [(2,16), (4, 42), (3, 23)]
tupList.sort(key = lambda tup: tup[1])
print(tupList)
Upvotes: 1