辞書の操作

Python SELF JA
レベル 11 , レッスン 2
使用可能

2.1 要素の数を取得する

Pythonでは辞書の要素数を取得するために 組み込み関数len()を使うよ。この関数は辞書内の キーと値のペアの数を返す。まあ、キーの数と言ってもいいかな。

関数の使用例:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # 出力: 3 

この例では、3つの要素を持つ辞書personがある。関数 len(person)は辞書の要素数を返し、それは3になるよ。

辞書が空かどうかを確認する

辞書が空かどうかを確認するためにlen()を使うことができるよ。 これは条件やループで便利だよね。


empty_dict = {}
print(len(empty_dict))  # 出力: 0

person = {"name": "Alice", "age": 25, "city": "New York"}

if len(person) > 0:
    print("辞書は空じゃないよ")
else:
    print("辞書は空だよ")

入れ子の構造を持つ辞書

len()トップレベルのキーの数だけを考慮するんだ、値が何であれね。


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # 出力: 3

この例では、データの入れ子の構造を持つ辞書がある。 len(complex_dict)は3を返す、トップレベルには3つのキーがあるからね。 "name", "details"と"hobbies"だね。

len()は入れ子の構造内のキー、例えば"age"や"city" を無視する、なぜならlen()はトップレベルのキーだけを数えるから。もしすべての要素、入れ子のものも含めて数えたいなら、 再帰的な方法を使わなきゃいけないね。でもそれについては今日は話さないよ。

2.2 タイプを確認する

Pythonにおける関数type()は オブジェクトのタイプを確認するために使うよ。辞書を扱う時、 type()はそのオブジェクトがdictクラスのインスタンスであることを確認できる。 これはいろんな状況で便利だよ、例えば、辞書に対して操作を行う前にデータのタイプを確認する時とかね。

使用例:

オブジェクトのタイプを確認する


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # 出力: <class 'dict'>

この例では、辞書personを作成して、 typeを使ってそのタイプを確認する。 関数は<class 'dict'>を返し、personが辞書であることを示している。

データタイプの条件付きチェック

関数type()は条件式でデータタイプを確認するのに使用できて、 dictタイプのオブジェクトに対してだけ特定の操作を実行することができる。


data = {"name": "Alice", "age": 25, "city": "New York"}

if type(data) is dict:
    print("これは辞書だよ。")
else:
    print("これは辞書じゃないよ。")

この例では条件式がdataが辞書であるかを確認して、対応するコードを実行する。

関数type()はカスタム関数内で引数のタイプを確認するために使用することができて、 関数が正しいデータタイプを処理することを保証できる。

例:


def process_data(data):
    if type(data) is dict:
        print("辞書を処理中...")
        # 辞書に対して操作を実行する
    else:
        print("エラー: 辞書が予期されました。")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

この例では、関数process_dataが引数dataが辞書であるかを確認し、 辞書に対してだけ対応する操作を実行する。

2.3 要素を取得する

辞書の要素の操作は、リストやタプルと似ていて、 角括弧を使うんだ。ただし、要素のインデックスの代わりに、角括弧の中にキーを指定する必要がある。 辞書のキーは文字列、数字、またはタプルのような任意の不変な要素になれる。


辞書[キー]

例:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # 出力: Alice

キーが存在しない場合、エラーが発生する:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # KeyError: 'country'が発生する

メソッドget(key, def_value)

メソッドget()はキーを用いて安全に値を取得することを可能にする。 キーが存在しない場合、メソッドはデフォルト値(指定されていない場合はNone)を返す。 これはKeyErrorの発生を防ぐよ。


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # 出力: 25

country = person.get("country", "USA")
print(country)  # 出力: USA

メソッドget()の第二引数には、指定したキーが辞書にない場合に返す値を 渡すことができる。

メソッドsetdefault()get()メソッドと同様に動作する、 が、キーが辞書に存在しない場合には、新しいキー: 値ペアを辞書に追加する。


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # 出力: New York
print(person)  # 出力: {'name': 'Alice', 'age': 25, 'city': 'New York'}
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION