Python3-python-dictionary

提供:Dev Guides
移動先:案内検索

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

cmp(dict1, dict2)

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

2

len(dict)

辞書の全長を示します。 これは、ディクショナリ内のアイテムの数に等しくなります。

3

str(dict)

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

4

type(variable)

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

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

Sr.No. Method & Description
1

dict.clear()

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

2

dict.copy()

辞書_dict_の浅いコピーを返します

3

dict.fromkeys()

seqのキーと値_set_から_value_で新しい辞書を作成します。

4

dict.get(key

_key_キーの場合、キーが辞書にない場合は値またはデフォルトを返します

5

dict.has_key(key)

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

6

dict.items()

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

7

dict.keys()

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

8

dict.setdefault(key

get()に似ていますが、_key_が既にdictにない場合はdict [key] = defaultを設定します

9

dict.update(dict2)

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

10

dict.values()

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