我有一个看起来像这样的元组列表:
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
我想要制作的是按元组的第二个值按升序排序的列表。所以L [0]在排序后应该是("Person 2", 8)
。
我该怎么做?使用Python 3.2.2如果有帮助。
答案 0 :(得分:157)
您可以将key
参数用于list.sort()
:
my_list.sort(key=lambda x: x[1])
或者,稍快一点,
my_list.sort(key=operator.itemgetter(1))
(与任何模块一样,您需要import operator
才能使用它。)
答案 1 :(得分:3)
如果您使用的是python 3.x,则可以在 mylist上应用sorted
函数。这只是@Sven Marnach上面给出的答案的补充。
# using *sort method*
mylist.sort(lambda x: x[1])
# using *sorted function*
sorted(mylist, key = lambda x: x[1])
答案 2 :(得分:-2)
def findMaxSales(listoftuples):
newlist = []
tuple = ()
for item in listoftuples:
movie = item[0]
value = (item[1])
tuple = value, movie
newlist += [tuple]
newlist.sort()
highest = newlist[-1]
result = highest[1]
return result
movieList = [("Finding Dory", 486), ("Captain America: Civil
War", 408), ("Deadpool", 363), ("Zootopia", 341), ("Rogue One", 529), ("The Secret Life of Pets", 368), ("Batman v Superman", 330), ("Sing", 268), ("Suicide Squad", 325), ("The Jungle Book", 364)]
print(findMaxSales(movieList))
输出 - > Rogue One