Python列表理解内表达式的参考值?

n61*_*007 1 python list-comprehension temporary temporaries

如果我有一个列表理解

[mymap.get(x, None) for x in oldlist if mymap.get(x,None)]
Run Code Online (Sandbox Code Playgroud)

有没有办法mymap.get(x,None)这里做一次

我想像

[y for x in oldlist if mymap.get(x,None) as y]
Run Code Online (Sandbox Code Playgroud)

但是目前这是SyntaxErrorpy 2.x中的。我希望能够引用列表理解的“表达式”或它的“ list_if”部分的结果值。

我也尝试过

[_ for x in oldlist if mymap.get(x,None)]
Run Code Online (Sandbox Code Playgroud)

但这是一个NameError,我想_只是在线上的某些解释器功能。

编辑

有没有办法以某种方式引用此临时/匿名/未命名变量,而无需重新列出该列表?

Ash*_*ary 5

[y for y in (mymap.get(x, None) for x in oldlist) if y]
Run Code Online (Sandbox Code Playgroud)

  • @naxa不,这不是重点,它是一个生成器表达式(注意,用(()`括号代替“ []”) (3认同)