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の値のリストを返します |