基本文法をマスターするぞ!!その2

ディクショナリ

  • オフセット(数字)ではなくキーによって要素にアクセスする

    ディクショナリは、「連想配列」、「ハッシュ」と呼ばれることもあるんだって♪

  • 要素を順不同に並べることができる

    リストとは違いディクショナリの要素を並べる順序は一定していないんだって。ディクショナリの要素は、検索効率の向上のため、無作為に並べているだよ♪

  • 長さを自由に変えられ、複数種の構成要素の混在も可能(ネストにも対応できる)

    ディクショナリは、リストと同様、伸縮が自由にできるんだって♪


  • 可変性で「写像」のカテゴリに属する

    ディクショナリでは、キーを指定して特定の要素に変更を加えること(要素を上書きする)ができるんだよ♪

以上「はじめてのPython」さんから引用させてもらいました(Thanks!!

とにかくコードを見てみましょう

>>> d = {'spam':2,'ham':1,'eggs':3}    #ディクショナリの作成
>>> d['spam']                          #キーによる要素の抽出
2
>>> d                                  #要素の順序は自動的に変わる
{'eggs': 3, 'ham': 1, 'spam': 2}
>>> len(d)                             #ディクショナリの要素の数を確認
3
>>> d.has_key('ham')                   #特定のキーが存在するかの確認
True
>>> 'ham' in d                         #この方法でも確認できる
True                
>>> d.keys()                           #ディクショナリのキーのリストを作成
['eggs', 'ham', 'spam']
>>> d['ham'] = ['grill','bake','fry']  #要素の上書き
>>> d
{'eggs': 3, 'ham': ['grill', 'bake', 'fry'], 'spam': 2}
>>> del d['eggs']                      #要素の削除
>>> d
{'ham': ['grill', 'bake', 'fry'], 'spam': 2}
>>> d['brunch'] = 'Becon'              #要素の追加
>>> d
{'brunch': 'Becon', 'ham': ['grill', 'bake', 'fry'], 'spam': 2}

リストに似てるようで似てない・・・・・
う〜ん・・・人の名前をキーにして要素をメールアドレスにすれば、メルアド管理プログラムが作れそうだな〜〜♪♪

ディクショナリのメソッド

>>> d.values(),d.items()
(['Becon', ['grill', 'bake', 'fry'], 2], [('brunch', 'Becon'), ('ham', ['grill', 'bake', 'fry']), ('spam', 2)])
>>> d.get('spam'),d.get('toast'),d.get('toast',88)
(2, None, 88)

ディクショナリの応用例

プログラミング言語の名前(キー)と、その開発者の名前(値)をペアにして並べた表(テーブル)を作成。

>>> table = {'python': 'Guido van Rossum',
	 'perl': 'Larry Wall',
	 'Tcl': 'John Ousterhout' }
>>> language = 'python'
>>> creator = table[language]
>>> creator
'Guido van Rossum'
>>> for lang in table.keys():
	print lang,'\t',table[lang]

	
python 	Guido van Rossum
Tcl 	John Ousterhout
perl 	Larry Wall