Сортировка кортежей на основе второго параметра

У меня есть список кортежей, которые выглядят примерно так:

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

Что я хочу получить, это список, отсортированный по возрастанию, вторым значением кортежа. Поэтому после сортировки L [0] должен быть ("Person 2", 8).

Как я могу это сделать? Использование Python 3.2.2 Если это помогает.

Ответ 1

Вы можете использовать параметр key для list.sort():

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

или, немного быстрее,

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

(Как и в любом модуле, вам нужно import operator, чтобы использовать его.)

Ответ 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))

вывод → Разбойник