Python高座


4. 辞書型と組型

辞書型は AWK でいうところの連想配列、Perl でいうところのハッシュである。項目は鍵と内容の対であり':'で組み合わされる。各項目はコンマ(,)で区切られ、全体は{}で囲まれる。内容はどんなものでもいいが、鍵は文字列と数値および組型(後述)に限られる。例えば次のようなものが辞書型の実体である。{'v':'Jon Anderson','g':'Peter Banks','k':'Tony Kaye','b':'Chris Squire','d':'Bill Bruford'}

辞書型にも固有の手段がある。

keys()
鍵をリストとして返す。
values()
内容をリストとして返す。
items()
鍵と内容の対を組にしたもののリストを返す。
has_key(x)
x が鍵に含まれているかどうか。
ここでも再び項目を削除するには del を用いる。また、項目の数を知るのに len() を使える。使用例は以下のとおり。

>>> yes={'Jon Anderson':'v','Peter Banks':'g','Tony Kaye':'k','Chris Squire':'b','Bill Bruford':'d'}
>>> yes.keys()
['Jon Anderson','Chris Squire','Peter Banks','Bill Bruford','Tony Kaye']
>>> yes.values()
['v','b','g','d','k']
>>> yes.items()
[('Jon Anderson','v'),('Chris Squire','b'),('Peter Banks','g'),('Bill Bruford','d'),('Tony Kaye','k')]
>>> del yes['Peter Banks']
>>> len(yes)
4
>>> yes['Steve Howe']='g'
>>> yes.has_key('Peter Banks')
0

この型の使用例としては組み込み関数 vars() がある。これは現在までに定義された変数および関数の値(関数はメモリー上のアドレス)を表示する。しばしば使うことになるかも知れない組み込み関数としては dir() もある。動作は vars().keys() である。

最後に簡単に組型(tuple)の説明をしておく。組型とは要素の組であって中身を一部だけ取り替えたりすることはできないデータ型である。要素はコンマで区切られ、全体は()で括られる。たとえば、辞書型の手段 items() が返すリストの要素。いくつを組にするかは自由で、7つなら (1,1,2,3,5,8,13) といった具合である。ここでも、len() は要素の数を返す。また輪切り法によって参照もできる。



目次索引