Python
 Computer >> コンピューター >  >> プログラミング >> Python

重複するキーを使用してPython辞書を作成するにはどうすればよいですか?


Python辞書では、キーを繰り返すことはできません。ただし、 defaultdictを使用できます 回避策を見つけるため。このクラスはコレクションモジュールで定義されています。

defaultdictオブジェクトのデフォルトファクトリとしてリストを使用する

>>> from collections import defaultdict
>>> d=defaultdict(list)

これは、それぞれ2つのアイテムを持つタプルのリストです。最初のアイテムが繰り返し使用されていることがわかりました。このリストはdefaultdictで変換されます

>>> for k,v in l:
      d[k].append(v)

dict()関数を使用して辞書オブジェクトでこのdefaultdictを変換します

>>> dict(d)
{1: [111, 'aaa'], 2: [222, 'bbb'], 3: [333, 'ccc']}



  1. 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}

  2. Pythonで辞書をキーで並べ替える方法は?

    Pythonの標準配布には、コレクションモジュールが含まれています。高性能コンテナデータ型の定義があります。 OrderedDictは、ディクショナリオブジェクトに追加されたエントリの順序を記憶するディクショナリのサブクラスです。順序付けられた辞書を反復処理すると、アイテムはキーが最初に追加された順序で返されます。 >>> from collections import OrderedDict >>> D = {5:fff, 3:ttt, 1:ooo,4:bbb, 2:ddd} >>> OrderedDict(D.items()) &nb