数値のリストがある場合[4,2,5,1,3]
、最初に関数f
で並べ替え、次に同じ値の数値の場合、数値f
の大きさで並べ替えます。
このコードは機能していないようです。
list5 = sorted(list5)
list5 = sorted(list5, key = lambda vertex: degree(vertex))
最初に二次ソート: list5 は大きさに基づいてソートされます。次の一次ソート: list5 は、数値の関数に基づいてソートされます。
数値のリストがある場合[4,2,5,1,3]
、最初に関数f
で並べ替え、次に同じ値の数値の場合、数値f
の大きさで並べ替えます。
このコードは機能していないようです。
list5 = sorted(list5)
list5 = sorted(list5, key = lambda vertex: degree(vertex))
最初に二次ソート: list5 は大きさに基づいてソートされます。次の一次ソート: list5 は、数値の関数に基づいてソートされます。
(firstkey, secondkey) タプルで並べ替えます。
sorted(list5, key=lambda vertex: (degree(vertex), vertex))
ソートに関する Python 3 ドキュメントから
from operator import itemgetter, attrgetter
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
#The operator module functions allow multiple levels of sorting. For example, to sort by grade then by age:
sorted(student_tuples, key=itemgetter(1,2))
sorted(student_objects, key=attrgetter('grade', 'age'))
電話ですが、タプルでソートできます。
sorted(list5, lambda x: (degree(x),x))
必要な場合は、リバース フラグを忘れないでください。