🐍 Pythonで辞書型データを扱うコツ

post-cover

辞書型について、まとめていきます!

辞書の宣言

user = {
    'name': 'taro',
    'age': 2
    }

複数の辞書の結合

**を使用した展開

base = {
    'id': 1
    }
user = {
    'name': 'taro',
    'age': 2
    }
taro = {**base, **user}

update

user = {
    'id': 1
    }
profile = {
    'name': 'taro',
    'age': 2
    }
user.update(profile)

update引数に複数の辞書を指定

** で展開して渡せばOK

user = {
    'id': 1
    }
profile = {
    'name': 'taro',
    'age': 2
    }
favorite = {
    'favorite': 'music'
}
user.update(**profile, **favorite)

引数に指定する辞書のキーが重複しているとエラーになるので注意

|演算子

Python 3.9 以降、パイプを使用して辞書を結合することができる。

user = {
    'id': 1
    }

profile = {
    'name': 'taro',
    'age': 2
    }
taro = user | profile

複数の辞書を指定することも可能

user = {
    'id': 1
    }
profile = {
    'name': 'taro',
    'age': 2
    }
favorite = {
    'favorite': 'music'
}
taro = user | profile | favorite

|=演算子

+= のように結合して代入することも可能

user = {
    'id': 1
    }
profile = {
    'name': 'taro',
    'age': 2
    }
favorite = {
    'favorite': 'music'
}
user |= profile

dict()で辞書を作成

キーワード引数

user = dict(id=1, name='taro')

key: value の組み合わせから作成

user = dict([("id", 1), ("name", 'taro')])

keyと value のそれぞれのリストから作成


user = dict([("id", 1), ("name", 'taro')])

辞書内包表記

keys = ["id", "name"]
values = [1, "taro"]
user = {k: v for k, v in zip(keys, values)}

辞書のループ

普通にループするとキーが取得される

user = {
    'id': 1,
    'name': 'taro',
    'age': 21
    }

for key in user:
    print(key)

# id
# name
# age

キー取得

普通にループするとキーが取得できるが、keys()を使用してもいい

user = {
    'id': 1,
    'name': 'taro',
    'age': 21
    }

for key in user.keys():
    print(key)

# id
# name
# age

keys メソッドはdict_keysクラスを返す。

list() でリスト化できる。

keys = user.keys()

list(keys)
# ['id', 'name', 'age']

value 取得

valueの取得はvalues() を使用

user = {
    'id': 1,
    'name': 'taro',
    'age': 21
    }

for value in user.values():
    print(value)

# 1
# 'taro'
# 21

values()メソッドはdict_valuesクラスを返す。

list() でリスト化できる。

key, valueの取得

key, valueの取得はitems()を使用

user = {
    'id': 1,
    'name': 'taro',
    'age': 21
    }

for key, value in user.items():
    print(key, value)

# id 1
# name taro
# age 21

items()メソッドはdict_itemsクラスを返す。

list() でリスト化できる。


Profile picture
michael ☻︎ 🇯🇵
Web Engineer(PHP/Laravel, Python/FastAPI/Flask, TypeScript/Vue/React, AWS/GCP, etc.) / Freelance /
Profile picture
michael ☻︎ 🇯🇵
Web Engineer(PHP/Laravel, Python/FastAPI/Flask, TypeScript/Vue/React, AWS/GCP, etc.) / Freelance /
FebMarAprMayJunJul
© 2024, PWE