Python - 文法 - 辞書型

クラウディア 
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')]
ハイスピードプラン健康サポート特集5G CONNECT