Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在迭代过程中更改字典大小,而我不';我不知道为什么_Python_Python 3.x_Dictionary_Nltk - Fatal编程技术网

Python 在迭代过程中更改字典大小,而我不';我不知道为什么

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

以下是错误消息:

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):
  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
#                                ^~~~~~~~~~~