Pythonの辞書キーのプロパティ
ディクショナリ値に制限はありません。それらは、標準オブジェクトまたはユーザー定義オブジェクトのいずれかの任意のPythonオブジェクトにすることができます。ただし、同じことはキーには当てはまりません。
辞書キーについて覚えておくべき2つの重要なポイントがあります-
- キーごとに複数のエントリを使用することはできません。つまり、重複するキーは許可されません。割り当て中に重複キーが検出されると、最後の割り当てが優先されます。
例
以下は簡単な例です-
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'} print "dict['Name']: ", dict['Name']
出力
上記のコードを実行すると、次の結果が生成されます-
dict['Name']: Manni
- キーは不変でなければなりません。つまり、文字列、数字、またはタプルを辞書キーとして使用できますが、['key']のようなものは許可されていません。
例
以下は簡単な例です-
#!/usr/bin/python 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: unhashable type: 'list'
-
Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
辞書は、キーと値のペアの順序付けられていないコレクションです。各要素は、位置インデックスによって識別されません。さらに、キーを繰り返すことができないという事実から、新しいキーを使用してそれに値を割り当てるだけで、新しいペアが辞書に追加されます。 >>> D1 = {1: a, 2: b, 3: c, x: 1, y: 2, z: 3} >>> D1[10] = z >>> D1 {1: a, 2: b, 3: c, x: 1, y: 2, z: 3, 10: z}
-
Pythonで辞書をキーで並べ替える方法は?
Pythonの標準配布には、コレクションモジュールが含まれています。高性能コンテナデータ型の定義があります。 OrderedDictは、ディクショナリオブジェクトに追加されたエントリの順序を記憶するディクショナリのサブクラスです。順序付けられた辞書を反復処理すると、アイテムはキーが最初に追加された順序で返されます。 >>> from collections import OrderedDict >>> D = {5:fff, 3:ttt, 1:ooo,4:bbb, 2:ddd} >>> OrderedDict(D.items()) &nb