Python 在迭代过程中更改字典大小,而我不';我不知道为什么
以下是错误消息: RuntimeError:字典在迭代期间更改了大小 这是我的代码段(继承,这意味着如果您读取一个不存在的条目Python 在迭代过程中更改字典大小,而我不';我不知道为什么,python,python-3.x,dictionary,nltk,Python,Python 3.x,Dictionary,Nltk,以下是错误消息: RuntimeError:字典在迭代期间更改了大小 这是我的代码段(继承,这意味着如果您读取一个不存在的条目cfd[b],一个新条目(b,FreqDist()),将插入到字典中,从而更改其大小。问题演示: import collections d = collections.defaultdict(int, {'a': 1}) for k in d: print(d['b']) 输出: 0 Traceback (most recent call last): Fi
cfd[b]
,一个新条目(b,FreqDist())
,将插入到字典中,从而更改其大小。问题演示:
import collections
d = collections.defaultdict(int, {'a': 1})
for k in d:
print(d['b'])
输出:
0
Traceback (most recent call last):
File "1.py", line 4, in <module>
for k in d:
RuntimeError: dictionary changed size during iteration
您确定cfd
中确实存在b
键吗?您可能需要将其更改为
B = sum(cfd[b].values()) if b in cfd else 0
# ^~~~~~~~~~~
你能提供一个完整的例子来说明这个问题吗?
for b in cfd[a]:
B = sum (cfd[b][c] for c in cfd[b])
B = sum(cfd[b].values()) if b in cfd else 0
# ^~~~~~~~~~~