84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
def sort(): return sorted(a,key=lambda x:(x['name'],x['age']),reverse=True)
就是说如果我传name就按name排序,如果传name和age就按照这两个key双重排序,如果传了三个key以此类推
光阴似箭催人老,日月如移越少年。
def sort(*arg): return sorted(a,key=lambda x,*arg:(x[y] for y in arg),reverse=True)
Mengikut pengubahsuaian anda, ia belum diuji. Anda boleh mengujinya. Harap saya menulisnya dengan betul.Ini adalah keputusan ujian saya:
>>> a = {'a': {'a1': 1, 'a2': 2, 'a3': 3}, 'b': {'a1': 2, 'a2': 1, 'a3': 3}, 'c': {'a1': 1, 'a2': 1, 'a3': 3}} >>> sort('a1','a2') ['c', 'b', 'a']
Nampaknya tiada yang salah dengannya
Saya tidak tahu sama ada anda mahu ini,Seperti berikut, lajur pertama dalam setiap tuple ialah nama, lajur kedua ialah gred, dan lajur ketiga ialah umurTujuannya adalah untuk Isih mengikut gred dahulu, dan kemudian mengikut umur Isih
# coding: utf-8 from operator import itemgetter, attrgetter # 每个tuple中第一列是姓名,第二列是成绩,第三列是年龄 student = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10)] # 按照年龄排序 print(sorted(student, key=itemgetter(2))) # 先按照成绩排序,然后按照年龄排序 print(sorted(student, key=itemgetter(1, 2)))
Rujuk kandungan dalam buku masakan PythonIsih senarai kamus mengikut kata kunci tertentuAnda boleh lulus parameter secara dinamik seperti berikut
rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1010}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Big', 'lname': 'Jones', 'uid': 1004} ] def my_sort(*args): print(sorted(rows, key=itemgetter(*args))) return sorted(rows, key=itemgetter(*args)) hello = my_sort('lname', 'uid') print('==' * 40) print(hello)
Dokumentasi untuk operator dipautkan di bawahoperator.itemgetter
Jawapan di tingkat satu bermasalah Walaupun ia tidak akan melaporkan ralat, ia tidak mempunyai kesan pengisihan
Berikut ialah kaedah yang boleh dilaksanakan selepas pengesahan:
def sort(a, args): return sorted(a, key=lambda x: tuple(x[i] for i in args), reverse=True) dic_sorted = sort(lst, ['time', 'id', 'type'])
args menerima senarai
Mengikut pengubahsuaian anda, ia belum diuji. Anda boleh mengujinya. Harap saya menulisnya dengan betul.
Ini adalah keputusan ujian saya:
Nampaknya tiada yang salah dengannya
Saya tidak tahu sama ada anda mahu ini,
Seperti berikut, lajur pertama dalam setiap tuple ialah nama, lajur kedua ialah gred, dan lajur ketiga ialah umur
Tujuannya adalah untuk Isih mengikut gred dahulu, dan kemudian mengikut umur Isih
Rujuk kandungan dalam buku masakan Python
Isih senarai kamus mengikut kata kunci tertentu
Anda boleh lulus parameter secara dinamik seperti berikut
Dokumentasi untuk operator dipautkan di bawah
operator.itemgetter
Jawapan di tingkat satu bermasalah Walaupun ia tidak akan melaporkan ralat, ia tidak mempunyai kesan pengisihan
Berikut ialah kaedah yang boleh dilaksanakan selepas pengesahan:
args menerima senarai