基于第二个参数对元组进行排序

我有一个元组列表,它看起来像这样:

("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)

What I want produced, is the list sorted in ascending order, by the second value of the tuple. So L[0] should be ("Person 2", 8) after sorting.

我该怎么做呢? 使用 Python 3.2.2,如果有帮助的话。

120631 次浏览

可以对 list.sort()使用 key参数:

my_list.sort(key=lambda x: x[1])

或者稍微快一点,

my_list.sort(key=operator.itemgetter(1))

(对于任何模块,您都需要 import operator才能使用它。)

    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))

输出—— > 侠盗一号

您还可以对列表应用 sorted函数,它将返回一个新的排序列表。这只是对 斯文 · 马尔纳给出的答案的一个补充。

# using *sort method*
mylist.sort(key=lambda x: x[1])


# using *sorted function*
l = sorted(mylist, key=lambda x: x[1])