NameError:在封闭范围内赋值之前引用的自由变量'd'

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

我是Python的新手,我想知道代码是否可行:

chs = ch.split(' ')
d = { mot:ch.count(mot) for mot in chs if (mot not in d)}

这些说明旨在根据我在其他编程语言中的知识来创建字典,我了解每次迭代循环时都会进行计数,因此,我尝试做的是优化而不是计算计数。这个词已经计算在内。

现在问题是我收到此错误

NameError: free variable 'd' referenced before assignment in enclosing scope

我完全理解,变量d尚未设置。

所以,我要寻找的是知道是否有一些临时变量的值包含在附件之前。

python list if-statement
1个回答
0
投票

您完全不需要检查mot中是否存在d。>

ch = 'a a b c d'
chs = ch.split(' ')
d = { mot:ch.count(mot) for mot in chs }

现在是d = {'a': 2, 'b': 1, 'c': 1, 'd': 1}


0
投票

您不需要支票

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