Skip to main content
 首页 » 编程设计

python之Python中列表理解内部表达式的引用值(value)

2025年05月04日16bhlsheji

如果我有这样的列表理解

[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,我猜 _ 只是行上的一些解释器功能。

编辑

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

请您参考如下方法:

[y for y in (mymap.get(x, None) for x in oldlist) if y]