Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Python】辞書型変数(dictionary)

More than 1 year has passed since last update.

辞書型変数とは

辞書型変数は、複数の値をもつリストのような変数である。
リストではindexによってリスト内の要素を参照することができる。
一方で、辞書型変数ではkeyによってvalue(値)を参照することができる。
以下の例でリストと辞書型変数の違いを確認して頂きたい。

dict.py
list={"apple","banana","chocolate"}
print(list[0])
>>>apple
dict={ "a":"apple" , "b":"banana" , "c":"chocolate" }
print(dict["a"])
>>>apple

上例で、変数名=dictが辞書型変数である。
a→apple
b→banana
c→chocolateに対応する。
a , b , c のことをkeyといい、
apple , banana , chocolate のことをvalueという。

辞書型変数の宣言の仕方(dict関数,zip関数)

辞書型変数はdict関数、zip関数を使っても宣言できる。
書きやすいと感じる方法で宣言して頂ければと思う。

★dict関数
変数名=dict(key1=value1 , key2=value2 , ・・・)
で宣言することが出来る。

dict_f.py
dict1=dict(a="apple" , b="banana" , c="chocolate")
print(dict1["a"])
>>>apple

これとzip関数を併用することでkeyとvalueを明確にした記述で宣言することが出来る。

dict_zip_f.py
key=["a","b","c"]
value=["apple","banana","chocolate"]
dict1=dict(zip(key,value))
print(dict1["a"])
>>>apple

key , value の取り出し方

辞書型変数に含まれるkeyを参照する方法は.keys()メソッド、
valueを参照する方法は.values()メソッドを使う。

dict_zip_f.py
key=["a","b","c"]
value=["apple","banana","chocolate"]
dict1=dict(zip(key,value))
print(dict1.keys())
>>>dict_keys(['a', 'b', 'c'])
print(dict1.values())
>>>dict_values(['apple', 'banana', 'chocolate'])

for文を使って一つずつ要素を取り出すこともできる。

dict_zip_f.py
key=["a","b","c"]
value=["apple","banana","chocolate"]
dict1=dict(zip(key,value))
for m in dict1.keys():
    print(m)
>>>a
>>>b
>>>c

要素の追加

辞書型変数の宣言後に、新たに要素を追加したい場合は
変数名[追加したいkey]=追加したいkeyに対するvalue
で追加することが出来る。

dict_zip_f.py
key=["a","b","c"]
value=["apple","banana","chocolate"]
dict1=dict(zip(key,value))
print(dict1)
>>>{'a': 'apple', 'b': 'banana', 'c': 'chocolate'}
dict1["d"]="dessert" #ここで新しいkeyとvalueを追加
print(dict1)
>>>{'a': 'apple', 'b': 'banana', 'c': 'chocolate' , 'd': 'dessert'}

辞書型変数に別の辞書型変数を組み合わせたいときは、
組み合わせ先dict.update(取り込みたいdict)
で二つの辞書から一つの辞書を生成することが出来る。

dict_zip_f.py
key1=["a","b","c"]
value1=["apple","banana","chocolate"]
dict1=dict(zip(key1,value1))

key2=["y","n"]
value2=["yes","no"]
dict2=dict(zip(key2,value2))

dict1.update(dict2)
print(dict1)
>>>{'a': 'apple', 'b': 'banana', 'c': 'chocolate' , 'y': 'yes' , 'n' ,'no'}

要素の削除

要素の削除はdel文、clearメソッドの二つがある。
★del文
いくつかの要素を削除することが出来る。
del 変数名[削除したいkey1] , 変数名[削除したいkey2] , ...

dict_zip_f.py
key1=["a","b","c"]
value1=["apple","banana","chocolate"]
dict1=dict(zip(key1,value1))
del dict1["a"] , dict1["c"]
print(dict1)
>>>{'b': 'banana'}

★clearメソッド
全ての要素を削除する。
変数名.clear()

dict_zip_f.py
key1=["a","b","c"]
value1=["apple","banana","chocolate"]
dict1=dict(zip(key1,value1))
dict1.clear()
print(dict1)
>>>{}
Takuya_Fujitani
新卒一年目のエンジニア?です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away