Saya memiliki daftar tupel yang terlihat seperti ini:
("Person 1",10)
("Person 2",8)
("Person 3",12)
("Person 4",20)
Yang ingin saya hasilkan, adalah daftar yang diurutkan dalam urutan menaik, berdasarkan nilai kedua tupel. Jadi L [0] harus ("Person 2", 8)
setelah penyortiran.
Bagaimana saya bisa melakukan ini? Menggunakan Python 3.2.2 Jika itu membantu.
Jawaban:
Anda dapat menggunakan
key
parameter untuklist.sort()
:my_list.sort(key=lambda x: x[1])
atau, sedikit lebih cepat,
my_list.sort(key=operator.itemgetter(1))
(Seperti modul apa pun, Anda harus
import operator
dapat menggunakannya.)sumber
L.sort(key=operator.itemgetter(1))
kode saya, tetapi saya mendapatkan NameError, 'operator' itu tidak ditentukan. Apakah saya perlu mengimpor sesuatu yang khusus?import operator
menggunakan fungsi tersebut. Jika Anda menambahkan itu ke jawaban Anda, saya akan menandainya diterima.Dan jika Anda menggunakan python 3.X, Anda dapat menerapkan
sorted
fungsinya di mylist. Ini hanyalah tambahan dari jawaban yang telah diberikan oleh Marnach di atas.# using *sort method* mylist.sort(lambda x: x[1]) # using *sorted function* sorted(mylist, key = lambda x: x[1])
sumber
sorted
bukanlist.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))
keluaran -> Rogue One
sumber