我是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中阅读有关列表推导的信息。
关于python - 该Python语句的冒号和在行尾的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47107818/