Python3-辞書

各キーはコロン(:)で値から区切られ、項目はコンマで区切られ、全体が中括弧で囲まれます。アイテムのない空の辞書は、次のように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

Note − 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には次の辞書関数が含まれています-

シニア番号 機能と説明
1 cmp(dict1、dict2)

Python3では使用できなくなりました。

2 len(dict)

辞書の全長を示します。これは、辞書内のアイテムの数と同じになります。

3 str(dict)

辞書の印刷可能な文字列表現を生成します

4 タイプ(変数)

渡された変数のタイプを返します。渡された変数がdictionaryの場合、辞書タイプを返します。

Pythonには次の辞書メソッドが含まれています-

シニア番号 方法と説明
1 dict.clear()

辞書のすべての要素を削除しdictのを

2 dict.copy()

戻り値の辞書の浅いコピー辞書

3 dict.fromkeys()

seqのキーとvalueに設定されたを使用して新しい辞書を作成します

4 dict.get(key、default = None)

以下のためのキー、キー、キーではない辞書であれば値またはデフォルト値を返します。

5 dict.has_key(key)

削除さました。代わりにin操作を使用してください。

6 dict.items()

dictの(キー、値)タプルペアのリストを返します

7 dict.keys()

辞書辞書のキーのリストを返します

8 dict.setdefault(key、default = None)

get()に似ていますが、キーがまだdictにない場合は、dict [key] =デフォルトに設定されます

9 dict.update(dict2)

辞書dict2のキーと値のペアをdictに追加します

10 dict.values()

辞書dictの値のリストを返します