Python入門から応用までの学習サイト


ディクショナリ

リストの次はディクショナリです。基本的にはリストと同じような構造ではありますが、キーとなる値(key)とバリューとなる値(value)をセットで1つの要素として持つことができるのが特徴です。

keyとvalueのセットは他のプログラミング言語でもよくある機能です。リストと同様、使用頻度はかなりあると思います。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='

for i in test_dict_1:
    print i
    print test_dict_1[i]
    print '--------------------------------'

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
MONTH
1
--------------------------------
DAY
20
--------------------------------
YEAR
2010
--------------------------------

タプルは「 () 」(カッコ)、リストは「 [] 」(大カッコ)で作成しますが、ディクショナリは「 {} 」(中カッコ)を使用します。一つの要素を「 key:value 」のようにし、次の要素との間に「 , 」(カンマ)で区切りを入れます。ディクショナリに対して繰り返し処理を行うとkeyが取得できるので、それを利用してvalueを取り出しています。


先程のサンプルコードでは「 dict_obj[key] 」というような形式で値を取得しましたが、「get」を利用する事もできます。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='

print test_dict_1['YEAR']
#print test_dict_1['YEARS']

print '---------------------------------'

print test_dict_1.get('YEAR')
print test_dict_1.get('YEARS')

print '---------------------------------'

print test_dict_1.get('YEAR','NOT FOUND')
print test_dict_1.get('YEARS','NOT FOUND')

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
2010
---------------------------------
2010
None
---------------------------------
2010
NOT FOUND

「get」を使用する利点は、ディクショナリ内に対応するkeyが存在しなくてもエラーにはならないことです。「 dict_obj[key] 」というような形で取得した場合、keyが存在しないと「KeyError」となりエラー終了してしまいます。また「get」はkeyが存在しなかった場合のデフォルト値を設定することができ、例では'NOT FOUND'という文字列を返すようにしています。


ディクショナリへkeyとvalueの要素を追加する場合は下記の通り記述します。

# -*- coding: utf-8 -*- 


test_dict_1 = {}

print test_dict_1

print '================================='

test_dict_1['YEAR']  = '2010'
test_dict_1['MONTH'] = '1'
test_dict_1['DAY']   = '20'

print test_dict_1

--実行結果--

{}
=================================
{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}

空のディクショナリを作成し、その後それぞれのkeyとvalueを追加しています。


ディクショナリから要素を削除する場合は「del」を使用します。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='

del test_dict_1['DAY']

print test_dict_1

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
{'MONTH': '1', 'YEAR': '2010'}

「del」の後に削除を行うkeyを指定します。


「keys」を使用するとディクショナリからkeyのみを取得し、リスト化して返されます。また「values」はvalueのみを取得します。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='

print test_dict_1.keys()
print test_dict_1.values()

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
['MONTH', 'DAY', 'YEAR']
['1', '20', '2010']


「items」を使用するとkeyとvalueを同時に取得することができます。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='

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

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
MONTH 1
DAY 20
YEAR 2010


ディクショナリが指定のキーを保持しているかを確認するには「in」を利用します。

# -*- coding: utf-8 -*- 


test_dict_1 = {'YEAR':'2010', 'MONTH':'1', 'DAY':'20'}

print test_dict_1

print '================================='
print 'YEAR' in test_dict_1
print 'YEARS' in test_dict_1

--実行結果--

{'MONTH': '1', 'DAY': '20', 'YEAR': '2010'}
=================================
True
False



Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

リストに似ている?ディクショナリに似ている?

▶基礎編:セット



確かな力が身につく
Python「超」入門




P  R