Pythonの辞書の考え方がわからなかったのでメモ。使い方も解説

スポンサーリンク

Pythonの辞書ってなに?

pythonではハッシュのことを辞書と言っているようだ。rubyの時もよくわからなかったこのハッシュだが、ようやくわかってきたきがする。キーはいつ新しく作られたのかがコードを解釈する段階でわかりづらい。

birthdays = {'アリス': '4/1', 'ボブ': '12/12', 'キャロル': '4/4'}
name = input()
birthdays[name] = 99

キーバリューペアの バリューは作られるけれども キーは いつ作られた?という疑問があったが、
「birthdays[name]」としたところでキーが作られていることがわかった。

「ハッシュ名[変数名]  = 値」という形でキーバリューペアが作られると覚えておけばいいかもしれない

message = 'It was a bright cold day in April, and the colcks were striking thirteen.'
count = {}
for character in message:
    count.setdefault(character,0)
    #count[character]キーに対して そのキーが何回出現したかをcount[character]+1を値としている
    count[character] = count[character]+1
    print(count)
    #messageの文字列の中に文字が何回でてきたかを数える

難しい。 辞書名[変数]でキーが作られ、 count[変数]+1を値としている。どう動いているかはわかるが理屈がわからない。

スポンサーリンク

追記 2023/7

プログラミングがよくわかっていない状態で記事を書いていたので前半の話は少し自信がない感じがありますがあとから見返してみると間違ってはいません。

ある程度プログラミングに慣れた今pythonの辞書の基本的な使い方をあらためて書いておこうと思います

pythonの辞書の使い方

辞書の作成と初期化

辞書は中括弧 {} を使って作成します。キーと値のペアはコロン : で区切り、複数のキーと値のペアはカンマ , で区切ります。

# 空の辞書の作成
my_dict = {}

# キーと値のペアを指定して辞書を作成
my_dict = {'キー1': '値1', 'キー2': '値2', 'キー3': '値3'}

要素の追加・変更・削除

辞書に要素を追加するには、新しいキーと値のペアを指定します。

my_dict = {'name': 'Alice', 'age': 25}

# 要素の追加
my_dict['city'] = 'Tokyo'

# 要素の変更
my_dict['age'] = 30

# 要素の削除
del my_dict['name']

要素のアクセス

辞書の要素には、キーを指定してアクセスします。

my_dict = {'name': 'Alice', 'age': 25}

# キーを指定して値を取得
print(my_dict['name'])  # 出力: Alice

# 存在しないキーにアクセスすると KeyError が発生
# キーが存在するか事前に確認する場合は、'キー' in 辞書 を使用します
if 'city' in my_dict:
    print(my_dict['city'])
else:
    print('キーが存在しません')

辞書の操作

辞書は様々な操作を行うことができます。

my_dict = {'name': 'Alice', 'age': 25}

# キーの一覧を取得
keys = my_dict.keys()
print(keys)  # 出力: dict_keys(['name', 'age'])

# 値の一覧を取得
values = my_dict.values()
print(values)  # 出力: dict_values(['Alice', 25])

# キーと値のペアの一覧を取得
items = my_dict.items()
print(items)  # 出力: dict_items([('name', 'Alice'), ('age', 25)])

# 辞書の要素数を取得
length = len(my_dict)
print(length)  # 出力: 2

辞書のループ処理

my_dict = {'name': 'Alice', 'age': 25}

# キーを順番に処理
for key in my_dict:
    print(key, my_dict[key])

# キーと値のペアを順番に処理
for key, value in my_dict.items():
    print(key, value)

コメント

タイトルとURLをコピーしました