PythonのdictはPerlやRubyでいうハッシュタイプです。その主な使い方についてのメモ書きです
初期化
初期化は様々な方法がありますが、{key: value, ...}
の形が最も使用頻度が高いでしょうか。下記の例にあるようにkey
に異なる複数の型を使用することができます。またこの際d[2]
とd[2.0]
のように数字として==
が成立するものは同一keyとして扱われます。 (ただし環境によって浮動小数点等号比較は結果が異なることがあるため、あまりあてにしない方がいいでしょう)
d = { 'ichi' : 1 , 2 : 'ni' , 'san' : 3 }
print (d)
print (f 'd["ichi"] = {d["ichi"]}' )
print (f 'd[2] = {d[2] }' )
print (f 'd[2.0] = {d[2.0] }' )
|
{ 'ichi' : 1, 2: 'ni' , 'san' : 3}
d[ "ichi" ] = 1
d[2] = ni
d[2.0] = ni
|
要素の追加
存在しないkey
に値を代入すると要素が追加されます。ただしd[key1][key2] =
とした場合に、key1
が存在しない場合はKeyError
例外が投げられます
d = {}
d[ 'ichi' ] = 1
d[ 'ni' ][ 'san' ] = 1
|
削除
del d[key]
で削除します。また、d.clear()
で全要素を削除します
要素のテスト
要素のテストはkey in d
または key not in d
で
if key in d:
...
if key not in d:
...
|
ループ処理
d.keys()
で全key
の要素を、d.values()
で全値を、d.items()
でkey
とvalue
のペアを処理できます
for key in d.keys():
...
for value in d.values():
...
for key, value in d.items():
...
|
要素の一括更新
d.update()
で複数要素の追加・更新ができます。update()
には他のdict型の変数、[(key, value), ...]
のtupleのリストの他キーワード引数を指定すると、キーワードを文字列キーとして扱ってくれます
d = { 'ichi' : 1 }
d2 = { 'ni' : 2 , 'san' : 3 }
d.update(d2)
d.update([( 'yon' , 4 ), ( 'go' , 5 )])
d.update(roku = 6 , nana = 7 )
print (d)
|
{ 'ichi' : 1, 'ni' : 2, 'san' : 3, 'yon' : 4, 'go' : 5, 'roku' : 6, 'nana' : 7}
|
キーと要素の交換
リスト内包表記を使うとキーと要素を交換したdict型が作成できます
d = { 'ichi' : 1 , 'ni' : 2 , 'san' : 3 }
d_swap = {val:key for key, val in d.items()}
|
最近のコメント