Python

Pythonで辞書(Dict)内のKeyやValue値の存在を確認したり取得する方法について

By 2021年5月9日No Comments

この記事ではPythonで辞書内の指定したキーやバリュー値の要素が存在するかどうかをin演算子を使っての確認や、

キーやバリュー値をリストに格納していきます。さらに、辞書をfor文でループ処理をしてキーとバリュー値を取り出してきます。

Pythonの辞書(Dict)内のKeyとValue値の要素をin演算子を使って存在するか確認する方法 

辞書内のキーとバリュー値が存在するかの確認には in演算子を使います。辞書の要素の中で指定したキーを持つ要素があった場合にはブール値がTrueとなり、なかった場合にはFalseを返します。構文は下記になります。

‘確認したい要素’ in 辞書.関数( )

jisyo = {'ヤマダ': 1, 'タナカ': 2, 'ウエダ': 3}

print('ヤマダ' in jisyo.keys())
print('キムラ' in jisyo.keys())

結果:

True
False

辞書に指定したバリュー値が存在するかの確認はvalues( )関数を使います。

print(1 in jisyo.values())
print(4 in jisyo.values())

結果:

True
False

辞書に指定したキーとバリュー値の組み合わせの確認はitems( )関数を使います。キーとバリュー値の組み合わせが一致したときのみTrueとなります。

print(('ヤマダ', 1) in jisyo.items())
print(('ヤマダ', 2) in jisyo.items())

結果:

True
False

not in演算子を使うと、指定したキーの要素があった場合にFalseとなり、なかった場合にはTrueと先程のin演算子とすべて逆の結果になります。

jisyo = {'ヤマダ': 1, 'タナカ': 2, 'ウエダ': 3}
print('ヤマダ' not in jisyo.keys())
print('キムラ' not in jisyo.keys())

結果:

False
True
print(1 not in jisyo.values())
print(4 not in jisyo.values())

結果:

False
True
print(('ヤマダ', 1) not in jisyo.items())
print(('ヤマダ', 2) not in jisyo.items())

結果:

False
True

このようにin演算子やnot in演算子を使うと辞書内のキーやバリュー値の要素の存在を確認する事ができます。

Pythonで辞書(Dict)のKeyやValue値をリストに格納する方法

辞書内の取得した要素にlist( )関数を組み合わせると辞書内のキーやバリュー値をリストに格納することができます。構文は下記になります。

list(辞書.関数( ))

jisyo = {'ヤマダ': 1, 'タナカ': 2, 'ウエダ': 3}

list_k = list(jisyo.keys())
list_v = list(jisyo.values())

print(list_k)
print(list_v)

結果:

['ヤマダ', 'タナカ', 'ウエダ']
[1, 2, 3]

item( )関数を使うと辞書内のキーとバリュー値をタプルに入れてからリストに格納する事ができます。

list_i = list(jisyo.items())
print(list_i)

結果:

[('ヤマダ', 1), ('タナカ', 2), ('ウエダ', 3)]

このように辞書内のキーやバリュー値を、それぞれ指定してリストに格納する事ができました。

Pythonの辞書(Dict)をループ処理してKeyとValue値を取得する方法

辞書をfor文でループ処理をするとキーとバリュー値の要素を一つずつ取得することができます。構文は下記になります。

for 要素の変数 in 辞書.関数():

    処理

ループで辞書のキーを取り出すには、keys( )関数を使います。

jisyo = {'ヤマダ': 1, 'タナカ': 2, 'ウエダ': 3}
for k in jisyo.keys():
print(k)

結果:

ヤマダ
タナカ
ウエダ

values( )関数でバリュー値も取得する事ができます。

for v in jisyo.values():
    print(v)

結果:

1
2
3

辞書内のキーとバリュー値の組み合わせを取得するにはitems( )関数を使います。

for k, v in jisyo.items():
    print(k, v)

結果:

ヤマダ 1
タナカ 2
ウエダ 3

items( )関数でキーとバリュー値を取り出すので上記の場合、キーを格納する「k」とバリュー値を格納する「v」と2つの変数が用意されているのが分かります。

enumerate( )関数を使うと辞書内のインデックス番号とキーやバリュー値も取得する事ができます。構文は下記になります。

for 変数1, 変数2 in enumerate(辞書.関数( )):

for i, key in enumerate(jisyo.keys()):
    print(i, key)

結果:

0 ヤマダ
1 タナカ
2 ウエダ

インデックス番号とキーの組み合わせを取得することができました。

values( )関数でバリュー値とインデックス番号も取得できます。

for v, value in enumerate(jisyo.values()):
    print(v, value)

結果:

0 1
1 2
2 3

enumerate( )関数とitems( )を組み合わせてキーとバリュー値とインデックス番号を取得する事もできます。構文は下記になります。

for インデックス,  (キーの変数, バリュー値の変数) in enumerate(辞書. items( )):

    処理

for i, (key, value) in enumerate(jisyo.items()):
    print(i, key, value)

結果:

0 ヤマダ 1
1 タナカ 2
2 ウエダ 3

このようにループ処理をすれば辞書内の要素を様々な組み合わせで取得する事ができます。

まとめ

Pythonでin演算子を使って辞書内に指定したキーの要素の存在の確認や、辞書の要素をリストに格納する事ができました。そして、辞書をループ処理することで辞書内のキーやバリュー値を取得する事ができました。以上、Pythonで辞書内の要素の取得や存在の確認方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL