我是 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 中阅读有关列表推导的信息.
