如果我有这样的列表理解
[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]
