第2章:Pythonのデータ構造と関数

2025年2月16日

こんにちは、皆さん!今日はPythonのデータ構造と関数についてお話ししましょう。この章では、Pythonプログラミングの基礎を形成するリスト、タプル、辞書、セットなどのデータ構造を詳しく見ていき、関数の定義や利用方法についても学びます。これらの基本的な知識を身につけることで、より効率的なプログラムを書く準備が整います。それでは早速始めましょう!

2.1 リストとタプル

リストとタプルは、Pythonにおける基本的なシーケンスタイプです。リストは可変シーケンスであり、要素の追加や削除が可能です。一方、タプルは不変シーケンスで、作成後は要素を変更できません。では、具体例を見てみましょう。

リストの例

# リストの作成
fruits = ["りんご", "バナナ", "オレンジ"]
print(fruits)

# 要素の追加
fruits.append("ぶどう")
print(fruits)

# 要素の削除
fruits.remove("バナナ")
print(fruits)

このコードでは、リストに果物の名前を追加し、削除する方法を示しています。

タプルの例

# タプルの作成
coordinates = (10.0, 20.0)
print(coordinates)

# タプルは不変のため、要素の変更はエラーになる
# coordinates[0] = 15.0  # これはエラーになります

タプルの利点は、その不変性です。変更できないため、データが意図せずに変わることを防ぎます。

リストとタプルは、それぞれ異なる用途に応じて使い分けることが重要です。

2.2 辞書とセット

次に、辞書とセットについてお話しします。辞書はキーと値のペアでデータを管理することができ、効率的なデータの検索が可能です。一方、セットは重複しない要素の集合であり、数学的な集合演算が簡単に行えます。

辞書の例

# 辞書の作成
person = {
    "名前": "太郎",
    "年齢": 25,
    "職業": "エンジニア"
}
print(person)

# 値の取得
print(person["名前"])

# 要素の追加
person["趣味"] = "プログラミング"
print(person)

辞書を使うことで、関連のあるデータを一元管理でき、可読性が向上します。

セットの例

# セットの作成
fruit_set = {"りんご", "バナナ", "オレンジ"}
print(fruit_set)

# 新しい要素の追加
fruit_set.add("ぶどう")
print(fruit_set)

# 重複する要素は追加されない
fruit_set.add("りんご")
print(fruit_set)  # りんごは重複しているため、変わらない

セットは、集合演算を活用する際に非常に便利です。たとえば、差集合や共通集合を簡単に計算することができます。

2.3 関数の定義と使用

さて、次は関数について学びましょう。関数は、特定のタスクを実行するための再利用可能なコードのブロックです。引数を受け取り、戻り値を返すことができます。

関数の定義

def greet(name):
    return f"こんにちは、{name}さん!"

# 関数の呼び出し
message = greet("太郎")
print(message)

この関数greetは、名前を受け取り、挨拶のメッセージを返します。

関数のスコープ

関数内で定義した変数のスコープに注意することが重要です。内側の変数は外側からアクセスできません。

def calculate_area(radius):
    pi = 3.14  # この変数は関数内でのみ有効
    return pi * radius ** 2

area = calculate_area(5)
print(area)

# print(pi)  # エラーになる

このように、関数のスコープを理解することは、予期しないエラーを避けるために重要です。

2.4 ラムダ式

最後に、ラムダ式について触れましょう。ラムダ式は無名関数とも呼ばれ、簡潔な関数形式で一時的な使用に適しています。これにより、コードの可読性が向上します。

ラムダ式の例

# 通常の関数
def add(x, y):
    return x + y

# ラムダ式を使用した同じ機能
add_lambda = lambda x, y: x + y

print(add(3, 4))          # 7
print(add_lambda(3, 4))  # 7

ラムダ式は特に、関数を引数として渡す場合に役立ちます。

# リスト内包表記とラムダ
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16, 25]

このように、ラムダ式を使うことでコードがすっきりし、簡潔に表現できる場面が多くなります。


この章では、Pythonでのデータ構造と関数について詳しく解説しましたが、次の章ではオブジェクト指向プログラミングの基礎について学びます。Pythonは、非常に柔軟で強力なプログラミング言語です。データ構造と関数を使いこなすことで、より効率的でエレガントなコードを書くことができるようになります。次回もお楽しみに!