辞書のキーや値を取得する方法についてまとめています。辞書の中にあるキーや値の確認は下記の記事で紹介しています。

get()メソッドを用いた値の取得
get()メソッドを用いると第一引数に用いたキーが辞書内に存在した場合、指定したキーの値が返されます。存在しない場合はNoneが返されます。使い方は辞書名.get(指定キー)とすると、キーと関連付けられた値が返されます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.get("brown"))
'''
【実行結果】
monkey指定したキーがない場合はNoneが返されます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.get("yellow"))
'''
【実行結果】
Noneget()メソッドの第二引数に値を入力すると、指定したキーがない場合に返される値を指定することができます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.get("yellow", "there is no yellow"))
'''
【実行結果】
there is no yellow items()メソッドの使い方
items()メソッドを用いると辞書内に含まれるキーと値の組み合わせ全てを取得することができます。使い方は辞書名.items()となります。取得したデータは、dict_items型として取得されます。(下記例の3行目でデータ型を確認しています。)
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.items())
print(type(animals.items()))
'''
【実行結果】
dict_items([('brown', 'monkey'), ('red', 'crab'), ('green', 'crocodile'), ('black', 'shrimp')])
<class 'dict_items'>items()メソッドとfor文との組み合わせ
items()メソッドだけでは、うまく活用方法を見出せませんが、for文と組み合わせる事により、それぞれのキーと値を取り出して…と活用することもできます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
for key_animals,value_animals in animals.items():
print(key_animals + value_animals)
'''
【実行結果】
brownmonkey
redcrab
greencrocodile
blackshrimp
各キーと関連付いた値を出力することができました。ただ、上記のままではキーと値が直接引っ付いてしまっていて、見にくいので、key:とvalue:を出力する時に引っ付けてもう少し見やすくしたいと思います。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
for key_animals,value_animals in animals.items():
print("key:"+ key_animals + " " + "value:" + value_animals)
'''
【実行結果】
key:brown value:monkey
key:red value:crab
key:green value:crocodile
key:black value:shrimpまだ改良の余地がありそうですが、先ほどよりは見やすくなりましたでしょうか。
タプルとして取り出す
for文での変数を1つにすれば、キーと関連づいた値の組み合わせをタプルとして取り出す事もできます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
for tuple_animals in animals.items():
print(tuple_animals)
'''
【実行結果】
('brown', 'monkey')
('red', 'crab')
('green', 'crocodile')
('black', 'shrimp')辞書が空の場合、出力方法により結果が変わる(items())
辞書が空の場合、辞書名.items() を出力すると空のdict_items()型が返されます。
animals = {}
print(animals.items())
'''
【実行結果】
dict_items([])下記のようにfor文を使っていると中身が空のものからは何も参照されないのか、全く何も出力されません。(Noneやエラー、空白も返されません。)
animals = {}
for key_animals,value_animals in animals.items():
print(key_animals,value_animals)
'''
【実行結果】キーと値の組み合わせをタプルで取得しようとした場合も同様で、全く何も出力されません。
animals = {}
for tuple_animals in animals.items():
print(tuple_animals)
'''
【実行結果】keys()メソッドの使い方
keys()メソッドを用いると辞書内に含まれる全てのキーを取得することができます。使い方は 辞書名.key()となります。また、取得されるデータはdict_keys型として取得されます。(下記3行目のコードでデータ型を確認しています)
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.keys())
print(type(animals.keys()))
'''
【実行結果】
dict_keys(['brown', 'red', 'green', 'black'])
<class 'dict_keys'>keys()メソッドとfor文との組み合わせ
こちらもそのままでは使い方が難しいかもしれませんが、for文と組み合わせる事によってキーだけを取り出すことができます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
for key_animals in animals.keys():
print(key_animals)
'''
【実行結果】
brown
red
green
black辞書が空の場合、出力方法により結果が変わる(keys())
先ほどのitems()メソッド同様、空の辞書に対して辞書名.keys()とすると空のdict_keys型が返されます。
animals = {}
print(animals.keys())
'''
【出力結果】
dict_keys([])下記のようにfor文を使っていると中身が空のものからは何も参照されないのか、全く何も出力されません。(Noneやエラー、空白も返されません。)
animals = {}
for key_animals in animals.keys():
print(key_animals)
'''
【実行結果】values()メソッドの使い方
上記のkeys()メソッドはキーに関するものでしたが、それの値版です。辞書内の全ての値を取得する事ができます。使い方は辞書名.values() となります。取得されるデータはdict_values型で返されます。(下記3行目のコードでデータ型を確認しています)
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
print(animals.values())
print(type(animals.values()))
'''
【実行結果】
dict_values(['monkey', 'crab', 'crocodile', 'shrimp'])
<class 'dict_values'>values()メソッドとfor文との組み合わせ
dict_values型のままだと扱いにくいですが、for文と組み合わせる事によって値だけを取り出す事ができます。
animals = {"brown":"monkey","red":"crab","green":"crocodile","black":"shrimp"}
for value_animals in animals.values():
print(value_animal
'''
【実行結果】
monkey
crab
crocodile
shrimp辞書が空の場合、出力方法により結果が変わる(values())
これまで同様、values()メソッドでも辞書が空だと空のdict_valuesが返されます。
animals = {}
print(animals.values())
'''
【実行結果】
dict_values([])下記のようにfor文を使っていると中身が空のものからは何も参照されないのか、全く何も出力されません。(Noneやエラー、空白も返されません。)
animals = {}
for value_animals in animals.values():
print(value_animals)
'''
【実行結果】
コメント