第8章 配列

配列

Pythonにおける配列には「リスト(List)」、「タプル(Tuple)」、「辞書(Dictionary)」があります。これらはデータをグループ化し、効率的に操作するためのツールとして使用されます。それぞれの特性と使用例を以下に示します。


リスト(List)

リストは複数の要素を順序付けして格納できるデータ構造です。リストは可変的(mutable)であるため、一度作成した後でも要素の追加、削除、変更が可能です。

# リストの作成
list1 = [1, 2, 3, 4, 5]

# append: リストの末尾に6を追加
list1.append(6)
print(list1)  # 出力: [1, 2, 3, 4, 5, 6]

# extend: リストの末尾に別のリストを追加
list1.extend([7, 8])
print(list1)  # 出力: [1, 2, 3, 4, 5, 6, 7, 8]

# insert: インデックス1の位置に0を挿入
list1.insert(1, 0)
print(list1)  # 出力: [1, 0, 2, 3, 4, 5, 6, 7, 8]

# remove: 値が0の最初の要素を削除
list1.remove(0)
print(list1)  # 出力: [1, 2, 3, 4, 5, 6, 7, 8]

# pop: インデックス0の要素を削除し、その要素を返す
element = list1.pop(0)
print(element)  # 出力: 1

# sort: リストを昇順に並べ替え
list1.sort()
print(list1)  # 出力: [2, 3, 4, 5, 6, 7, 8]

# reverse: リストを逆順に
list1.reverse()
print(list1)  # 出力: [8, 7, 6, 5, 4, 3, 2]


タプル(Tuple)

タプルはリストと似ていますが、要素の変更が不可能な(immutableな)データ構造です。要素の追加や削除、変更が不要な場合や、データの保護が必要な場合に使用されます。

# タプルの作成
tuple1 = (1, 2, 2, 3, 3, 3)

# count: 値が2の要素の数を数える
num_2 = tuple1.count(2)
print(num_2)  # 出力: 2

# index: 値が3の最初の要素のインデックスを取得
index_3 = tuple1.index(3)
print(index_3)  # 出力: 3


辞書(Dictionary)

辞書はキーと値のペアを格納するデータ構造で、キーを使って値にアクセスすることができます。順序は保証されませんが、データの検索が高速であることが特徴です。

# 辞書の作成
dict1 = {'apple': 1, 'banana': 2, 'cherry': 3}

# keys: 全てのキーを取得
keys = dict1.keys()
print(keys)  # 出力: dict_keys(['apple', 'banana', 'cherry'])

# values: 全ての値を取得
values = dict1.values()
print(values)  # 出力: dict_values([1, 2, 3])

# items: 全てのキーと値のペアを取得
items = dict1.items()
print(items)  # 出力: dict_items([('apple', 1), ('banana', 2), ('cherry', 3)])

# get: キーが'apple'の値を取得
value = dict1.get('apple')
print(value)  # 出力: 1

# update: 他の辞書のキーと値を追加
dict1.update({'orange': 4})
print(dict1)  # 出力: {'apple': 1, 'banana': 2, 'cherry': 3, 'orange': 4}

# pop: キーが'apple'の要素を削除し、その値を返す
element = dict1.pop('apple')
print(element)  # 出力: 1

# clear: 辞書の全ての要素を削除
dict1.clear()
print(dict1)  # 出力: {}


練習問題1.

以下のリストが与えられます。

numbers = [5, 10, 15, 20, 25]

このリストの要素全てを2倍にした新しいリストを作成してください。


練習問題2.

以下のリストが与えられます。

students = [("Tom", 18), ("Lucy", 20), ("Jack", 22)]

このリストの各タプルから、名前をキー、年齢を値とする辞書を作成してください。


練習問題3.

以下の辞書が与えられます。

products = {"apple": 100, "banana": 200, "cherry": 300}

この辞書の各キーと値を用いて、「appleは100円です」という形式で出力してください。