リストとタプル
リストとタプルは、複数の要素をまとめて扱うためのデータ構造です。リストは要素の追加や削除が可能なのに対し、タプルは一度作成したら変更できません。
リスト
リストは、角括弧([])で要素を囲んで作成します。要素にはどのようなデータ型も格納できます。
colors = ["red", "green", "blue"]
numbers = [1, 2, 3, 4, 5]
リストの要素にアクセスするには、インデックスを使います。インデックスは0から始まります。
print(colors[0]) # red
リストに要素を追加するには、appendメソッドを使います。また、指定したインデックスに要素を挿入するには、insertメソッドを使います。
colors.append("yellow")
colors.insert(1, "purple")
リストから要素を削除するには、removeメソッドやpopメソッドを使います。
colors.remove("green")
colors.pop(1)
タプル
タプルは、丸括弧(())で要素を囲んで作成します。要素にはどのようなデータ型も格納できます。
weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
タプルの要素にアクセスするには、インデックスを使います。
print(weekdays[0]) # Monday
タプルはイミュータブル(変更不可)なので、要素の追加や削除はできません。
ただし、要素がリストなどのミュータブル(変更可能)なデータ型である場合は、その要素の中身を変更することができます。
nested_tuple = (1, [2, 3], 4)
nested_tuple[1][0] = 100
print(nested_tuple) # (1, [100, 3], 4)
このようにリストとタプルを使って、複数の要素を効率的に管理することができます。
辞書(dictionary)と集合(set)
辞書(dictionary)と集合(set)は、より高度なデータ構造で、様々なデータを効率的に管理するために使用されます。
辞書(dictionary)
辞書は、キーと値のペアでデータを格納するデータ構造です。
波括弧({})を使って作成し、キーと値のペアをコロン(:)で区切ります。
student = {
"name": "山田太郎",
"age": 20,
"is_student": True
}
辞書の要素にアクセスするには、キーを使います。
print(student["name"]) # 山田太郎
辞書に要素を追加するには、新しいキーを指定して値を代入します。要素を更新するには、既存のキーを指定して新しい値を代入します。
student["height"] = 170
student["age"] = 21
辞書から要素を削除するには、del文を使います。
del student["is_student"]
集合(set)
集合は、重複しない要素を格納するデータ構造です。set関数を使って作成するか、波括弧({})を使って作成します。
numbers = {1, 2, 3, 4, 5}
fruits = set(["apple", "banana", "orange"])
集合に要素を追加するには、addメソッドを使います。
numbers.add(6)
集合から要素を削除するには、removeメソッドを使います。
numbers.remove(1)
集合演算(和集合、積集合、差集合、対称差)を行うことができます。
a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
union = a | b # 和集合
intersection = a & b # 積集合
difference = a - b # 差集合
symmetric_difference = a ^ b # 対称差
このように辞書と集合を使って、さらに高度なデータ管理が可能になります。
関数
関数は、特定の処理をまとめて定義したもので、繰り返し利用することができます。関数を定義するには、def文を使います。
def greet(name):
print(f"こんにちは、{name}さん!")
関数を呼び出すには、関数名に続けて丸括弧(())を記述し、引数を渡します。
greet("山田")
関数は、引数を受け取って処理を行い、結果を返すことができます。返り値を指定するには、return文を使います。
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
関数は、コードを再利用しやすくするだけでなく、プログラムの構造を整理し、可読性を向上させます。
ラムダ関数
ラムダ関数は、無名関数とも呼ばれ、1行で簡潔に関数を定義することができます。ラムダ関数は、シンプルな処理を行う関数を定義する際に便利です。
square = lambda x: x * x
print(square(5)) # 25
ラムダ関数は、関数オブジェクトを直接返すため、変数に代入せずに引数として使用することもできます。
numbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x * x, numbers)
print(list(squares)) # [1, 4, 9, 16, 25]
これで、Pythonの基本的なデータ構造と関数について解説しました。次のは、クラスとオブジェクト指向プログラミングについて学んでいきます。オブジェクト指向プログラミングは、現代のプログラミングの基本となる考え方であり、Pythonをより深く理解するために重要な概念です。