Pythonでは、データ構造として「リスト」「セット」「辞書」などが提供されています。これらはデータを効率的に格納し、操作するために広く利用されています。この記事では、これらのデータ構造について詳細に説明し、実際の使用方法や便利な操作方法について解説します。
1. リスト(List)
リストは、Pythonで最も基本的かつよく使われるデータ構造の1つです。リストは順序付けられたデータの集合で、インデックスを使って要素にアクセスできます。リストは可変長で、異なる型のデータを格納することができます。

リストの作成
リストを作成するには、角括弧「[]」を使います。
pythonfruits = ['apple', 'banana', 'cherry']
リストへの要素の追加
append()
メソッドを使ってリストの末尾に要素を追加できます。
pythonfruits.append('orange')
print(fruits) # ['apple', 'banana', 'cherry', 'orange']
リストの要素の削除
remove()
メソッドを使って指定した要素を削除できます。指定した要素がリストに存在しない場合、エラーが発生します。
pythonfruits.remove('banana')
print(fruits) # ['apple', 'cherry', 'orange']
リストのインデックスを使ったアクセス
リストの要素にはインデックスを使ってアクセスできます。インデックスは0から始まります。
pythonprint(fruits[0]) # 'apple'
print(fruits[-1]) # 'orange'(逆順でアクセス)
リストのスライス
リストの一部を取り出すにはスライスを使います。スライスの構文は「[start:end]」です。
pythonsubset = fruits[1:3]
print(subset) # ['cherry', 'orange']
2. セット(Set)
セットは重複しない要素を格納するためのデータ構造です。リストと違って、セット内の要素には順序がなく、インデックスでアクセスすることはできません。
セットの作成
セットを作成するには、波括弧「{}」またはset()
関数を使います。
pythonnumbers = {1, 2, 3, 4, 5}
セットへの要素の追加
add()
メソッドを使ってセットに要素を追加します。セットは重複を許さないので、すでに存在する要素を追加しようとしても何も起こりません。
pythonnumbers.add(6)
print(numbers) # {1, 2, 3, 4, 5, 6}
セットからの要素の削除
remove()
メソッドを使ってセットから要素を削除できますが、削除しようとした要素が存在しないとエラーになります。discard()
メソッドは、要素が存在しない場合でもエラーを発生させません。
pythonnumbers.remove(2)
print(numbers) # {1, 3, 4, 5, 6}
numbers.discard(7) # 存在しなくてもエラーなし
セットの演算
セットは集合演算をサポートしています。例えば、和集合(union()
)、積集合(intersection()
)、差集合(difference()
)などがあります。
pythonset1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6}
print(set1.intersection(set2)) # {3, 4}
print(set1.difference(set2)) # {1, 2}
3. 辞書(Dictionary)
辞書はキーと値のペアを格納するデータ構造です。リストやセットと違って、辞書は順序を保持せず、キーを使って対応する値にアクセスできます。キーは変更不可(immutable)な型(例えば文字列や数値)でなければなりません。
辞書の作成
辞書は波括弧「{}」を使って作成します。キーと値のペアはコロン「:」で区切ります。
pythonstudent = {'name': 'Taro', 'age': 20, 'grade': 'A'}
辞書からの値のアクセス
キーを指定して値を取得します。
pythonprint(student['name']) # 'Taro'
辞書への要素の追加と更新
新しいキーと値を追加するには、キーを指定して値を代入します。すでに存在するキーの場合、その値が更新されます。
pythonstudent['age'] = 21 # 更新
student['address'] = 'Tokyo' # 追加
print(student) # {'name': 'Taro', 'age': 21, 'grade': 'A', 'address': 'Tokyo'}
辞書からの要素の削除
del
を使って辞書からキーとその対応する値を削除できます。
pythondel student['grade']
print(student) # {'name': 'Taro', 'age': 21, 'address': 'Tokyo'}
辞書のメソッド
辞書には便利なメソッドがいくつかあります。
-
keys()
:辞書のすべてのキーを返す。 -
values()
:辞書のすべての値を返す。 -
items()
:キーと値のペアを返す。
pythonprint(student.keys()) # dict_keys(['name', 'age', 'address'])
print(student.values()) # dict_values(['Taro', 21, 'Tokyo'])
print(student.items()) # dict_items([('name', 'Taro'), ('age', 21), ('address', 'Tokyo')])
4. まとめ
Pythonでは、リスト、セット、辞書といったデータ構造を駆使することで、複雑なデータの管理や処理を効率的に行うことができます。それぞれの特徴や操作方法を理解し、適切なデータ構造を選ぶことが重要です。リストは順序が重要な場合に、セットは重複のない集合操作を行う場合に、辞書はキーと値のペアで効率的にデータを管理する場合に役立ちます。
これらのデータ構造を活用することで、Pythonのプログラミングがさらに強力で柔軟なものになります。