高度なリスト操作:ソート、クエリ、ネスト
この最終ステップでは、ソート、情報の問い合わせ、ネストされたリストの操作など、より高度なリスト操作を探ります。
まず、ソートから始めましょう。sort() メソッドはリストをインプレース (in-place) で変更します。昇順または降順にソートできます。
WebIDE でファイル list_operations.py を開きます。ソートを実演するために、次のコードを追加します。
## --- Sorting Lists ---
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print("--- Sorting Lists ---")
print("Original numbers list:", numbers)
## Sort the list in-place (ascending)
numbers.sort()
print("After sort():", numbers)
## Sort the list in descending order
numbers.sort(reverse=True)
print("After sort(reverse=True):", numbers)
## The reverse() method simply reverses the order, it does not sort
letters = ['a', 'b', 'c', 'd']
print("\nOriginal letters list:", letters)
letters.reverse()
print("After reverse():", letters)
ファイルを保存し、ターミナルから実行します。
python ~/project/list_operations.py
出力は、ソートされたリストと逆順にされたリストを示します。
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
次に、リストに対して情報を問い合わせる方法を見てみましょう。
count(): 値が出現する回数を返します。
index(): 値が最初に出現したインデックスを返します。
list_operations.py に次のコードを追加します。
## --- Querying Lists ---
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print("\n--- Querying Lists ---")
print("Fruits list:", fruits)
## Count the occurrences of an element
apple_count = fruits.count('apple')
print("Count of 'apple':", apple_count)
## Find the index of the first occurrence of an element
banana_index = fruits.index('banana')
print("Index of first 'banana':", banana_index)
最後に、ネストされたリスト (nested lists) について見てみましょう。ネストされたリストとは、他のリストを要素として含むリストのことです。これは、行列 (matrix) やグリッドのような 2 次元構造を作成するのに役立ちます。
この最後のコードブロックを list_operations.py に追加します。
## --- Nested Lists ---
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("\n--- Nested Lists ---")
print("Matrix:", matrix)
## Access an entire inner list (a row)
first_row = matrix[0]
print("First row:", first_row)
## Access a specific element in the nested list
## To get the element '6', we access row 1, then column 2
element = matrix[1][2]
print("Element at matrix[1][2]:", element)
ファイルを保存し、スクリプトを最後に実行します。
python ~/project/list_operations.py
完全な出力は、ソート、問い合わせ、およびネストされたリストへのアクセスを実演します。
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
--- Querying Lists ---
Fruits list: ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
Count of 'apple': 2
Index of first 'banana': 3
--- Nested Lists ---
Matrix: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
First row: [1, 2, 3]
Element at matrix[1][2]: 6
これで、Python リストを操作するためのいくつかの高度なテクニックを習得しました。