[python] 두 번째 매개 변수를 기준으로 튜플 정렬

다음과 같은 튜플 목록이 있습니다.

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

내가 원하는 것은 튜플의 두 번째 값에 따라 오름차순으로 정렬 된 목록입니다. 따라서 L [0]은 ("Person 2", 8)정렬 후에 있어야합니다 .

어떻게 할 수 있습니까? Python 3.2.2 사용이 도움이된다면.



답변

key매개 변수를 사용하여 다음을 수행 할 수 있습니다 list.sort().

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

또는 약간 더 빠르게

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

(다른 모듈과 마찬가지로 import operator사용할 수 있어야합니다.)


답변

그리고 python 3.X를 사용 sorted하는 경우 mylist에 함수를 적용 할 수 있습니다 . 이것은 @Sven Marnach가 위에서 제공 한 답변에 추가 된 것입니다.

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

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


답변

    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


답변