次のようなタプルのリストがあります。
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
私が作成したいのは、タプルの2番目の値で昇順でソートされたリストです。したがって、L [0]は("Person 2", 8)
ソート後にする必要があります。
これどうやってするの?Python3.2.2の使用それが役立つ場合。
次のようなタプルのリストがあります。
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
私が作成したいのは、タプルの2番目の値で昇順でソートされたリストです。したがって、L [0]は("Person 2", 8)
ソート後にする必要があります。
これどうやってするの?Python3.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の関数を適用できます。 これは、@ SvenMarnachが上記で示した回答への単なる追加です。
# 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))
出力->ローグワン