CodeGym /Javaコース /Python SELF JA /リストのソート

リストのソート

Python SELF JA
レベル 7 , レッスン 8
使用可能

8.1 リストのソート

Pythonでのリストのソートは重要な操作で、データを分析や表示のために整理することができます。 Pythonはリストをソートするいくつかの方法を提供しており、タスクや求められる結果に応じてそれぞれが役立ちます。

sort()メソッド

sort()メソッドはリストをその場でソートします、つまり元のリストを変更します。 これは非常に効率的で、引数を介してソートをカスタマイズすることができます。


numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)  # 出力:[1, 2, 5, 9] 

reverse=True引数を設定することでリストを逆順にソートすることができます。


numbers = [5, 2, 9, 1]
numbers.sort(reverse=True)
print(numbers)  # 出力:[9, 5, 2, 1]

sorted()関数

sorted()関数は、元のリストをソートした新しいリストを作成します。 このとき元のリストは変更されないため、元のデータをそのまま保持する必要がある場合はsorted()が好ましい選択となることがよくあります。


numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 出力:[1, 2, 5, 9]
print(numbers)  # 元のリストは変更されていません:[5, 2, 9, 1]

sort()はオリジナルのリストを変更し、sorted()は新しいソートされたリストを返し、オリジナルはそのままにします。 データをその場で変更する必要がある場合はsort()を使用し、元のデータの順序を保持したい場合はsorted()を使用します。

8.2 キーによるソート

時には複雑なソートシナリオや、特定のパラメータを無視したソートが必要になることがあります。 この場合、「キーによるソート」が役立ちます。それを使用するには、sort()メソッドまたはsorted()関数にkeyという特別なパラメーターを渡します。

keyパラメーターの値として、要素を比較するための関数を渡す必要があります。

大文字小文字を無視した文字列の比較

比較の前に、すべての文字列が小文字に変換されます


alist = ["banana", "Orange", "Kiwi", "cherry"]
alist.sort(key=str.lower)
print(alist)  # 出力:['banana', 'cherry', 'Kiwi', 'Orange']

タプルのリストのソート例

例えば、学生のリストがあり、各要素は(tuple)で、学生の名前とその成績を含んでいるとします。 学生を成績順にソートしたい場合:


students = [('Alice', 88), ('Bob', 75), ('Carol', 96)]

def get_grade(student):
    return student[1]
            
students.sort(key=get_grade)
print(students)  # 出力:[('Bob', 75), ('Alice', 88), ('Carol', 96)]

辞書のリストのソート例

または、学生情報を含む辞書のリストがあるとします。 成績でそれらをソートするには、次のようなコードを書く必要があります:


students = [
    {'name': 'Alice', 'grade': 88},
    {'name': 'Bob', 'grade': 75},
    {'name': 'Carol', 'grade': 96}
]
        
def get_grade(student):
    return student['grade']
        
sorted_students = sorted(students, key=get_grade)
print(sorted_students)  # 出力:[{'name': 'Bob', 'grade': 75}, {'name': 'Alice', 'grade': 88}, {'name': 'Carol', 'grade': 96}]
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION