Skip to main content
 首页 » 编程设计

python之这条 Python 语句在行尾带有冒号和 for 的含义

2025年05月04日20wayfarer

我是 Python 新手。我试图理解这种语法,但我什至无法找到正确的引用,因为我不知道各种语义元素的含义:

self._sensitive_ids = {xmr : self.parser.get_id(xmr) for xmr in self.sensitive} 

现在这在我的 python 安装 (V2.4) 中不起作用。它说“SyntaxError:语法无效”

有人可以解释分配给 LHS 的内容,以及重写 Python 2.4 语句的正确方法吗?行尾提到的“for”循环在这里循环是什么?

顺便说一句,原始代码来自这里:vcd_parse

请您参考如下方法:

正如其他人所说,这是一种字典理解,直到 2.7 版才在 Python 2 中可用。

在 Python 2.5 及更高版本中,您可以在 dict 构造函数中使用生成器表达式:

self._sensitive_ids = dict((xmr, self.parser.get_id(xmr)) for xmr in self.sensitive) 

在 Python 2.4 中,您可以在 dict 构造函数中使用列表理解:

self._sensitive_ids = dict([(xmr, self.parser.get_id(xmr)) for xmr in self.sensitive]) 

实际上,您也可以使用 Python 2.4 中的生成器表达式版本。有点晕,好久没用2,4了。 ;)

您可以在 the official tutorial 中阅读有关列表推导的信息.