Python でリストのリストを並べ替える
-
Python でオペレーターモジュールの
itemgetter()
関数をsorted()
関数と一緒に使用してリストのリストを並べ替える -
Python で
lambda
式をsorted()
関数と一緒に使用してリストのリストを並べ替える -
Python で
sort()
関数を使用してリストのリストを並べ替える
リストは、Python で使用される最も強力なデータ構造の 1つです。要件に基づいてすべての要素を昇順または降順で配置することにより、Python でリストを並べ替えることができます。
Python でネストされたリストを作成することもできます。これらはリストのリストと考えることができます。リストのリストを並べ替えると、キーとして指定されたインデックスに従ってすべての内部リストが配置されます。
このチュートリアルでは、いくつかのインデックスに基づいて Python のリストのリストを並べ替えます。
Python でオペレーターモジュールの itemgetter()
関数を sorted()
関数と一緒に使用してリストのリストを並べ替える
関数 sorted()
は、Python でリストを並べ替えるために使用されます。デフォルトでは、リストを昇順で並べ替えます。オペレータモジュールの関数 itemgetter()
は、パラメータとしてインデックス番号を受け取り、そのインデックス番号に配置されたデータセットから要素を返します。
したがって、関数 sorted(List_name, key=itemgetter(index_number))
は、各内部リストの指定された index_number に配置された要素によってリストのリストをソートします。
例えば、
from operator import itemgetter
A = [[10, 8], [90, 2], [45, 6]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=itemgetter(0))))
B = [[50, "Yes"], [20, "No"], [100, "Maybe"]]
print("Sorted List B based on index 1: % s" % (sorted(B, key=itemgetter(1))))
出力:
Sorted List A based on index 0: [[10, 8], [45, 6], [90, 2]]
Sorted List B based on index 1: [[100, 'Maybe'], [20, 'No'], [50, 'Yes']]
リストのリストを降順でソートするには、reverse
パラメーターを key
パラメーター、および sorted()
関数のリスト名とともに使用します。
例えば、
from operator import itemgetter
C = [[10, 8, "Cat"], [90, 2, "Dog"], [45, 6, "Bird"]]
print(
"Reversed sorted List C based on index 1: % s"
% (sorted(C, key=itemgetter(1), reverse=True))
)
出力:
Reverse sorted List C based on index 1: [[10, 8, 'Cat'], [45, 6, 'Bird'], [90, 2, 'Dog']]
Python で lambda
式を sorted()
関数と一緒に使用してリストのリストを並べ替える
lambda
式は、Python の単純な 1 行関数です。
関数 sorted(List_name, key=lambda x:x[index_number])
は、各内部リストの指定された index_number に配置された要素によってリストのリストをソートするために使用されます。
例えば、
A = [[100, "Yes"], [40, "Maybe"], [60, "No"]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=lambda x: x[0])))
B = [[2, "Dog"], [0, "Bird"], [7, "Cat"]]
print("Sorted List A based on index 1: % s" % (sorted(B, key=lambda x: x[1])))
出力:
Sorted List A based on index 0: [[40, 'Maybe'], [60, 'No'], [100, 'Yes']]
Sorted List B based on index 1: [[0, 'Bird'], [7, 'Cat'], [2, 'Dog']]
同様に、reverse
パラメーターを使用して、出力を降順で取得できます。
例えば、
C = [[60, 5], [90, 7], [30, 10]]
print(
"Reversed sorted List C based on index 0: % s"
% (sorted(C, key=lambda x: x[0], reverse=True))
)
出力:
Reversed sorted List C based on index 0: [[90, 7], [60, 5], [30, 10]]
Python で sort()
関数を使用してリストのリストを並べ替える
sort()
メソッドは、各内部リストの最初の要素に従って Python のリストのリストを並べ替えます。このメソッドは、元のリスト自体に変更を加えます。reverse
パラメータを使用して降順で並べ替えます。
例えば、
A = [[55, 90], [45, 89], [90, 70]]
A.sort()
print("New sorted list A is % s" % (A))
A.sort(reverse=True)
print("New reverse sorted list A is % s" % (A))
出力:
New sorted list A is [[45, 89], [55, 90], [90, 70]]
New reverse sorted list A is [[90, 70], [55, 90], [45, 89]]
内部リストの長さに従って指定されたリストをソートするには、key=len
パラメーターを使用します。
例えば、
A = [[5, 90, "Hi", 66], [80, 99], [56, 32, 80]]
A.sort(key=len)
print("New sorted list A is % s" % (A))
出力:
New sorted list A is [[80, 99], [56, 32, 80], [5, 90, 'Hi', 66]]