다음과 같은 튜플 목록이 있습니다.
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
내가 원하는 것은 튜플의 두 번째 값에 따라 오름차순으로 정렬 된 목록입니다. 따라서 L [0]은 ("Person 2", 8)
정렬 후에 있어야합니다 .
어떻게 할 수 있습니까? Python 3.2.2 사용이 도움이된다면.
다음과 같은 튜플 목록이 있습니다.
("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
사용할 수 있어야합니다.)
L.sort(key=operator.itemgetter(1))
내 코드에서 사용 을 시도했지만 '연산자'가 정의되지 않은 NameError가 발생합니다. 특별한 것을 가져와야합니까?
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])
sorted
대신 사용할 것이 분명하기 때문 입니다 list.sort
.
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