回答:
これは私にリストを分割してそれを圧縮しようとするのと同じエラーを私に与えます。ValueError:辞書更新シーケンス要素#0の長さは1916です。2が必要です
それがあなたの実際の質問です。
答えは、あなたのリストの要素はあなたが彼らが思っているものではないということです。入力myList[0]
すると、リストの最初の要素が2タプルではなく、たとえば('A', 1)
1916長の反復可能であることがわかります。
元の質問()で述べた形式のリストを実際に作成したら、あとmyList = [('A',1),('B',2),...]
は必要ですdict(myList)
。
[(1,2), (1,3)]
-> {1:3}
キーを破壊して情報を失う!dictは、O(1)挿入/削除時間との1対*の関係です。リストはリストです。
>>> dict([('A', 1), ('B', 2), ('C', 3)])
{'A': 1, 'C': 3, 'B': 2}
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
して'A': 1
いません。
これを試しましたか?
>>> l=[('A',1), ('B',2), ('C',3)]
>>> d=dict(l)
>>> d
{'A': 1, 'C': 3, 'B': 2}
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
結果'A': 1
として、望ましい結果ではない可能性があります。
重複したタプル「キー」を処理する方法は次のとおりです。
# An example
l = [('A', 1), ('B', 2), ('C', 3), ('A', 5), ('D', 0), ('D', 9)]
# A solution
d = dict()
[d [t [0]].append(t [1]) if t [0] in list(d.keys())
else d.update({t [0]: [t [1]]}) for t in l]
d
OUTPUT: {'A': [1, 5], 'B': [2], 'C': [3], 'D': [0, 9]}
タプルにキーの繰り返しがない場合、それは単純です。
tup = [("A",0),("B",3),("C",5)]
dic = dict(tup)
print(dic)
タプルにキーの繰り返しがある場合。
tup = [("A",0),("B",3),("C",5),("A",9),("B",4)]
dic = {}
for i, j in tup:
dic.setdefault(i,[]).append(j)
print(dic)
A
、B
(またはBERA
)およびC
(またはCE
)実際にありますか?ありがとう