-1
[[1,2,"s"],[1,5,"e"],...]
のようなリストのリストがあります.3番目の値は常にs
またはe
です。どのように私はsort()
呼び出すことができ、そのようなリストはに基づいてソートされている:最初のインデックスが同じであればPythonでカスタム述語ソートを使用する方法
- 最初のインデックス
- 、
s
が最初に来ます。
おかげ
[[1,2,"s"],[1,5,"e"],...]
のようなリストのリストがあります.3番目の値は常にs
またはe
です。どのように私はsort()
呼び出すことができ、そのようなリストはに基づいてソートされている:最初のインデックスが同じであればPythonでカスタム述語ソートを使用する方法
s
が最初に来ます。おかげ
はカスタムkey
機能を記述します。
def sort_key(list_):
if list_[2] == 's':
return (list_[0], 0)
return (list_[0], 1)
test_list = [[1, 2, 's'], [1, 5, 'e'], [2, 4, 'e'], [2, 3, 's']]
test_list.sort(key=sort_key)
# [[1, 2, 's'], [1, 5, 'e'], [2, 3, 's'], [2, 4, 'e']]
あなたは、アイテムの比較キーを生成するために使用されるlist.sort
にカスタムキー機能を渡すことができます。
>>> l = [[1, 5, 'e'], [1, 2, 's'], [0, 4, 'e']]
>>> l.sort(key=lambda x: (x[0], -ord(x[2])))
>>> l
[[0, 4, 'e'], [1, 2, 's'], [1, 5, 'e']]
https://docs.python.org/3/howto/sorting.html#key-functions "python sort predicate"の最初の結果... – Jasper