Python3-python-dictionary
Python 3-辞書
各キーはコロン(:)で値と区切られ、アイテムはコンマで区切られ、全体が中括弧で囲まれます。 アイテムのない空の辞書は、次のように中括弧2つだけで記述されます:\ {}。
キーは辞書内で一意ですが、値は一意ではありません。 ディクショナリの値はどのタイプでもかまいませんが、キーは文字列、数値、タプルなどの不変のデータタイプである必要があります。
辞書の値へのアクセス
辞書の要素にアクセスするには、おなじみの角括弧とキーを使用してその値を取得できます。 以下は簡単な例です-
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
上記のコードが実行されると、次の結果が生成されます-
dict['Name']: Zara
dict['Age']: 7
辞書の一部ではないキーでデータ項目にアクセスしようとすると、次のようにエラーが発生します-
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])
上記のコードが実行されると、次の結果が生成されます-
dict['Zara']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
辞書の更新
以下の簡単な例に示すように、新しいエントリまたはキーと値のペアを追加したり、既存のエントリを変更したり、既存のエントリを削除したりして、辞書を更新できます。
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
上記のコードが実行されると、次の結果が生成されます-
dict['Age']: 8
dict['School']: DPS School
辞書要素を削除する
個々の辞書要素を削除するか、辞書の内容全体を消去できます。 1回の操作で辞書全体を削除することもできます。
辞書全体を明示的に削除するには、 del ステートメントを使用します。 以下は簡単な例です-
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'] # remove entry with key 'Name'
dict.clear() # remove all entries in dict
del dict # delete entire dictionary
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
これにより、次の結果が生成されます。
*del dict* の後、辞書はもう存在しないため、例外が発生します。
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
注-del()メソッドについては、後続のセクションで説明します。
辞書キーのプロパティ
辞書の値には制限がありません。 標準オブジェクトまたはユーザー定義オブジェクトの任意のPythonオブジェクトを使用できます。 ただし、キーについても同様ではありません。
辞書キーについて覚えておくべき2つの重要な点があります-
- (a)*キーごとに複数のエントリは許可されません。 これは、重複キーが許可されないことを意味します。 割り当て中に重複キーが検出されると、最後の割り当てが優先されます。 たとえば-
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])
上記のコードが実行されると、次の結果が生成されます-
dict['Name']: Manni
- (b)*キーは不変でなければなりません。 つまり、文字列、数字、またはタプルを辞書キーとして使用できますが、['key']のようなものは許可されません。 以下は簡単な例です-
#!/usr/bin/python3
dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
上記のコードが実行されると、次の結果が生成されます-
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable
組み込みの辞書関数とメソッド
Pythonには次の辞書関数が含まれています-
Sr.No. | Function & Description |
---|---|
1 |
Python 3では使用できなくなりました。 |
2 |
辞書の全長を示します。 これは、ディクショナリ内のアイテムの数に等しくなります。 |
3 |
辞書の印刷可能な文字列表現を生成します |
4 |
渡された変数の型を返します。 渡された変数が辞書の場合、辞書タイプを返します。 |
Pythonには次の辞書メソッドが含まれています-
Sr.No. | Method & Description |
---|---|
1 |
辞書_dict_のすべての要素を削除します |
2 |
辞書_dict_の浅いコピーを返します |
3 |
seqのキーと値_set_から_value_で新しい辞書を作成します。 |
4 |
_key_キーの場合、キーが辞書にない場合は値またはデフォルトを返します |
5 |
削除されました。代わりに_in_操作を使用してください。 |
6 |
_dict_の(キー、値)タプルペアのリストを返します |
7 |
辞書辞書のキーのリストを返します |
8 |
get()に似ていますが、_key_が既にdictにない場合はdict [key] = defaultを設定します |
9 |
辞書_dict2_のキーと値のペアを_dict_に追加します |
10 |
辞書_dict_の値のリストを返します |