私は2つのdictsの値としてセットを持っています。2つの既存のdictsからdictを作成
Dct1 = {'a':[1, 2, 3], 'b':[4, 5, 6, 7], 'c':[8, 9, 10], 'd':[11, 12, 13, 14]}
Dct2 = {'TypeZ':['a', 'b'], 'TypeX':['c', 'd']}
私は別の辞書を作成したいと考えている:項目の値のキーがDCT2 3の値のアイテムである2かどうかをチェックDCT1 の値の項目を通じて 1.反復します。新しい辞書の設定値としてのdict 1に新しいDCTのためのキーと値の対応する項目としてDCT2のキーを使用しています
Dct3 = {'TypeZ':[1, 2, 3, 4, 5, 6, 7], 'TypeX':[8, 9, 10, 11, 12, 13, 14]}
私もDCT3の値の重複を避けるためにしたいです。
は、ここで私は現在、(他のdictsが既に正常にビルドされている)に苦しんでいるコードの抜粋です:
RateByType = {}
for key, item in RoRaDct.items():
for i, j in TpRtDct.items():
for x in item:
for y in j:
if key == y:
RateByType[i].add(item)
しかし、それは重要なエラーを生成しています。私はdefaultdict(set)を使ってみましたが、TypeError:unhashable型:setを取得しました。後者は、私が最初の2つのdictを構築するために使用した方法です。
あなたは値はセットだと言っていますが、あなたのコードはそれらをリストとして記述しています(重複排除についても議論します)。 'set'型または' list'型の値はありますか? –
Dct2宣言で 'TypeX'の後に' ''がありません – shash678
' Dct3 [' TypeX '] 'に' 11'が含まれているのはなぜですか? –