私はちょうどPythonを学び始めて、2つの同一のキーをペアにすることが可能かどうか疑問に思っていましたか?辞書内の同一のキーを並べ替える
例:
my_dict= {1:a,3:b,1:c}
と私は新しい辞書を作りたい、このような何か:あなたは、同一のキーを持つことができません助け
私はちょうどPythonを学び始めて、2つの同一のキーをペアにすることが可能かどうか疑問に思っていましたか?辞書内の同一のキーを並べ替える
例:
my_dict= {1:a,3:b,1:c}
と私は新しい辞書を作りたい、このような何か:あなたは、同一のキーを持つことができません助け
ため
new_dict= {1:{a,c},3:{b}}
おかげで、その辞書の定義です。同じキーをもう一度追加するとすぐ前のエントリが削除されます
Pythonで繰り返しキーを使用することはできません。
Pythonの辞書、またはそのようなハッシュ可能な型は、重複するキーを許可しません。辞書に2つの重複キーが見つかった場合、辞書内の最も遠いキーが持続されます。この動作は、最初に手をobseveredすることができます。この問題に関するdict()
のタッチのための
>>> my_dict= {1:'a',3:'b',1:'c'}
>>> my_dict
{1: 'c', 3: 'b'}
>>> my_dict= {1:'c',3:'b',1:'a'}
>>> my_dict
{1: 'a', 3: 'b'}
>>>
ザ・Pythonドキュメント:
これは、キーの順不同のセットとして辞書を考えるのがベストです:valueのペア、 キーがユニークであることを条件に(1つの辞書内)[...]。
(強調鉱山)
私が理解から、次の2つの辞書を結合しようとしています。辞書の中に同じキーを持つことはできないので、組み合わせを得るために結合する2つの異なる辞書があるとします。
例:
dic1 = {'a': 1, 'b': 2, 'c': 3}
dic2 = {'c': 4, 'd': 5, 'e': 6}
及びこれらの組み合わせが生成するであろう:
{ 'A':{1}、 'B':{2}、 'C':{3,4}、 'D':{4}、 'E':{6}}
この例を使用することができる:
from itertools import chain
from collections import defaultdict
dic1 = {'A': 1, 'B': 2, 'C': 3}
dic2 = {'C': 4, 'D': 5, 'E': 6}
dic = defaultdict(set)
for k, v in chain(dic1.items(), dic2.items()):
dic[k].add(v)
print(dict(dic))
注意する何か:
あなたは可能性の代わりにdefaultdict()の引数にセット、使用リストを使用しように辞書を持っている:
{ 'A':[1]、 'B':[2]、 'C' を:[3、4]、 'd':[4]、 'e':[6]
dic [k] .append(v)はforループで使用されます。セットに項目を追加し、リストに追加します。
元のdictは違法です(試してください)が、必要な結果が可能です。各dictエントリにリストを作成し、それに必要な値を含めることができます。 –
ハッシュについてお読みください。それがどのようにして同一のキーを不可能にするか。 –
最初に辞書にキーを重複させることはできません。 –