Python学習ノート(四)—辞書(dict)
4785 ワード
-1.辞書dict
前述した順序集合tupleとlistを習得しましたが、どのように2つを関連付けてクエリーを行うかは、辞書-dictを使用する必要があります.dictでは、key-valueを使用して関連付け、keyを使用してvalueを検索します.辞書ではカッコ{}を使用して要素を囲みます.
-①dictの作成
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
-②dictのサイズを計算する
dictも集合なのでlen()関数でdictのサイズを計算できますが、key-valueの1つが1つです.
len(d)
-③dictのkeyの値を検索
d[‘key’]でdictの対応するkeyの値を検索できます.
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
val=d['Adam']
print val
:95
forループによってdictのkeyを巡回し、keyによって対応するvalueを取得することもできます.以下のようにします.
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key,":", d.get(key)
:
Lisa : 85
Adam : 95
Bart : 59
-④キーが存在するかどうかを確認する
keyからdictにアクセスすると、keyが存在しない場合、プログラムがエラーを報告するので、以下の2つの方法でkeyが第1の方法が存在するかどうかを問い合わせることができ、in方法:key in dで結果Ture or Falseを返すことができます.
if 'Bart' in d:
print d['Bart']
else:
d['Bart'] = 59
:59
第2に、dictが提供するgetメソッドであって、d.get(‘key’)を使用し、keyが存在しない場合はnoneを返すか、d.get(‘key’,−1)のような戻り値をカスタマイズしてkeyが存在しない場合は−1を返すこともできる.注意noneに戻るとPythonのインタラクティブコマンドラインに結果は表示されません.
print d.get('Bart')
print d.get('Paul')
:59 None
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
print "Adam:", d['Adam']
print "Lisa:", d.get('Lisa')
if 'Bart' in d:
print "Bart:", d['Bart']
:
Adam: 95
Lisa: 85
Bart: 59
-④Dictの更新
dictは可変のリストで、付与文でdictを更新できます.keyが存在しない場合、dictに新しいkey-valueのペアを追加します.keyがすでに存在する場合、新しいvalueは古いvalueに置き換えられます.
-⑤キーを削除する方法
d.pop('key')では、対応するvalueも一括削除されます
-⑥dictの特徴
listと比較してdictには、検索速度が速く、dictが大きくなるにつれて時間の複雑さが増大することなく大量のメモリを消費する必要があり、メモリの浪費が多いkeyは繰り返してはならず、可変データの無秩序な排出はできないという特徴があります.
注意:keyは可変オブジェクトでなければなりません.dictはkeyに基づいてvalueの格納位置を計算するため、同じkeyが計算するたびに異なるvalueを導出すると、dict内部は完全に混乱する.keyで位置を計算する方法はハッシュアルゴリズムであり,hashの正確性を保証するにはkeyのオブジェクトとしては変えられない.Pythonでは文字列も整数も可変オブジェクトであり,安心してkeyとすることができ,listは可変であるためkeyとすることはできない.
keyタイプ:文字列、整形、浮動小数点型、メタグループ型ただしリスト(listは可変)valueタイプ:いずれでもよい