如果我有一个像Python中列表理解中表达式的参考值?
[mymap.get(x, None) for x in oldlist if mymap.get(x,None)]
列表理解是有办法做到mymap.get(x,None)
只一次这里?
我想象像
[y for x in oldlist if mymap.get(x,None) as y]
,但目前这是PY 2.x的一个SyntaxError
我希望能够引用列表理解的"expression"的结果值或来自列表理解的“list_if”部分的结果值。
我也试过
[_ for x in oldlist if mymap.get(x,None)]
但这是一个NameError
,我想_
仅为上线的一些解释功能。
编辑
有没有以某种方式引用该临时/匿名/无名变量的方式,而无需重新遍历列表?
这不会重新遍历列表吗? – n611x007
@naxa否,它不会,这就是它的意义所在,它是一个生成器表达式(注意'()'括号而不是'[]') – jamylak