Pythonには、様々なデータ構造がありますが、その中でもリスト、タプル、辞書のソートについて解説します。
リストのソート
リストのソートには、sort()
関数を使用します。この関数は、リスト自身を破壊的に変更することに注意してください。
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] numbers.sort() print(numbers)
出力結果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
また、sort()
関数にreverse=True
を渡すことで、逆順にソートすることもできます。
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] numbers.sort(reverse=True) print(numbers)
出力結果:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
リストが文字列の場合、アルファベット順でソートされます。
words = ["Python", "is", "a", "great", "programming", "language"] words.sort() print(words)
出力結果:
['Python', 'a', 'great', 'is', 'language', 'programming']
タプルのソート
タプルはイミュータブルなので、リストと同じようにsort()
関数を使用することはできません。代わりに、sorted()
関数を使用します。
numbers = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5) sorted_numbers = sorted(numbers) print(sorted_numbers)
出力結果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
リストと同様に、reverse=True
を渡すことで逆順にソートすることができます。
numbers = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5) sorted_numbers = sorted(numbers, reverse=True) print(sorted_numbers)
出力結果:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
辞書のソート
辞書は順序を持たないため、ソートすることはできません。ただし、辞書のキーまたは値をソートすることはできます。
fruits = {"apple": 3, "banana": 1, "orange": 2, "kiwi": 5} sorted_fruits = sorted(fruits.items()) print(sorted_fruits)
出力結果:
[('apple', 3), ('banana', 1), ('kiwi', 5), ('orange', 2)]
辞書のitems()
メソッドを使用することで、キーと値の両方を含むタプルのリストが得られます。このリストをsorted()
関数を使ってソートすることができます。デフォルトでは、タプルの最初の要素(キー)を基準にソートされます。
キーまたは値を基準にソートする場合は、key
引数を使用します。
fruits = {"apple": 3, "banana": 1, "orange": 2, "kiwi": 5} sorted_fruits_by_value = sorted(fruits.items(), key=lambda x: x[1]) print(sorted_fruits_by_value)
出力結果:
[('banana', 1), ('orange', 2), ('apple', 3), ('kiwi', 5)]
この例では、lambda
関数を使って、タプルの2番目の要素(値)を基準にソートしています。
以上が、リスト、タプル、辞書のソートについての解説でした。