这是我的代码。
d={(i,j):i+j for i in range(1,7) for j in range(1,7)}
from collections import defaultdict
dinv = defaultdict(list)
for i,j in d.values():
dinv[j].append(i)
X={i:len(j)/36. for i,j in dinv.iteritems() }
print (X)
这是我的回溯错误。
TypeError Traceback (most recent call last)
<ipython-input-20-d6b279f4a6a8> in <module>
4 from collections import defaultdict
5 dinv = defaultdict(list)
----> 6 for i,j in d.values():
7 dinv[j].append(i)
8
TypeError: cannot unpack non-iterable int object
要对键和值进行迭代,你需要使用 .items()
另外,你最好给你的变量取个好听的名字
dinv = defaultdict(list)
for pair,v_sum in d.items():
dinv[v_sum].append(pair)
接下来你会 defaultdict
无属性 iteritems
,使用 items
太
X = {key:len(values)/36. for key,values in dinv.items()}
你可能是指 d.items()
或 d.keys()
(或只是 d
)而不是 d.values()
在 for i,j in d.values():
.