我怎样才能解开不可读写的项目?

问题描述 投票:0回答:1

这是我的代码。

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
python probability probability-theory probability-distribution
1个回答
1
投票

要对键和值进行迭代,你需要使用 .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()} 

0
投票

你可能是指 d.items()d.keys() (或只是 d)而不是 d.values()for i,j in d.values():.

© www.soinside.com 2019 - 2024. All rights reserved.