- 1. 概要
- 2. 宣言・初期化
- 3. 追加
- 4. 削除
- 5. 更新
- 6. クリア
- 7. ループ
- 8. キーの有無
- 9. ソート
1. 概要
「Python」には、辞書型(dictionary)というオブジェクトがあります。
わたしの理解では、ハッシュ・・・みたいなものなのですが・・・間違っていたらごめんなさい。
本ページは、下記のサイトを参考にさせていただきました。
「組み込み型 — Python 3.7.7 ドキュメント マッピング型 --- dict」
以下、今んとこ(2020年6月8日)、「Python3.7」を利用した、わたしの理解です。
2. 宣言・初期化
辞書型は、キーと値がセットになっております。
単に宣言して初期化するには。
dic = {}
値つきで、初期化するには
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print(dic)
てな感じになります。
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
3. 追加
簡単に追加をするならば
dic = { 'key01' : 'value01' }
dic['key02'] = 'value02'
print(dic)
てな感じで、キーに値を代入します。
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02'}
4. 削除
削除には、「del」という関数(?)を使用します。
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print(dic)
del dic['key02']
print(dic)
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
{'key01': 'value01', 'key03': 'value03'}
5. 更新
更新には、
辞書[キー] = 値
の形式か
辞書1.update(辞書2)
の形式があります。
両者とも元の辞書に、同じキーがあれば、値を上書きして、なければ、新規のキー・値のセットを追加します。
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print(dic)
dic['key02'] = 'value04'
print(dic)
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
{'key01': 'value01', 'key02': 'value04', 'key03': 'value03'}
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print(dic)
dic.update({ 'key01' : 'value01', 'key02' : 'value04', 'key03' : 'value03', 'key05' : 'value05' })
print(dic)
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
{'key01': 'value01', 'key02': 'value04', 'key03': 'value03', 'key05': 'value05'}
6. クリア
辞書をクリアするのは、「clear」という関数(?)一発です。
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print(dic)
dic.clear()
print(dic)
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
{}
7. ループ
キー、値、キー・値のセット、どれでもループさせる方法があります。
dic = { 'key01' : 'value01', 'key02' : 'value02', 'key03' : 'value03' }
print("keys")
for key in dic.keys():
print(key)
print("\nvalues")
for value in dic.values():
print(value)
print("\nitems")
for key, value in dic.items():
print(key, value)
上記を実行すると、下記の結果が得られます。
{'key01': 'value01', 'key02': 'value02', 'key03': 'value03'}
{}
8. キーの有無
オブジェクト内にキーが存在するかを確認するには
キー in 辞書
という形式を使用します。
否定形(キーが存在しない)は、「not in」を使用します。
dic = { 'key01' : 'value01' }
print('key01' in dic)
print('key02' in dic)
print('key01' not in dic)
print('key02' not in dic)
上記を実行すると、下記の結果が得られます。
True
False
False
True
9. ソート
「sort」というメソッドを持ってはいるようなのですが・・・。
組み込み関数、「sorted」を使う方がやりやすい。
「sorted」の引数に、辞書型の「keys」「values」「items」を渡すことにより。
それぞれ、キーをソートしたリスト、値をソートしたリスト、キーでソートした辞書を返すことになります。
値でソートした辞書を得るには、なんかラムダ式という、難しいものを使うようなので、今(2022年6月15日)のわたしには、書けないのだ。
dic = { 'key1' : 'valE', 'key3' : 'valC', 'key2' : 'valD', 'key4' : 'valB', 'key5' : 'valA', }
print(dic)
print(sorted(dic.keys()))
print(sorted(dic.values()))
print(sorted(dic.items()))
上記を実行すると、下記の結果が得られます。
{'key1': 'valE', 'key3': 'valC', 'key2': 'valD', 'key4': 'valB', 'key5': 'valA'}
['key1', 'key2', 'key3', 'key4', 'key5']
['valA', 'valB', 'valC', 'valD', 'valE']
[('key1', 'valE'), ('key2', 'valD'), ('key3', 'valC'), ('key4', 'valB'), ('key5', 'valA')]
|