在列表理解/映射/过滤器内分配标识符

问题描述 投票:0回答:1

我想将lambda表达式传递给捕获外部变量l的过滤器。我希望l成为传递给过滤器的列表。假设该列表来自其他一些列表理解/映射/过滤。是否可以将标识符(在本例中为l)分配给该列表?像这样:

filter((lambda x : len([z for z in l if z == x]) == 1), l@[1,1,2,3,4,4,5,6,6] )

我刚刚使用@,因为在Haskell中你可以用类似的方式使用@

是否有一些简洁的语法或我是否需要将操作分解为几行并以正常方式分配l

python list-comprehension identifier
1个回答
1
投票

不可能“动态”给filter的第二个参数。

即便如此,我认为Python代码应该更加明确(参见“The Zen of Python”),我建议将代码分成两行或更多行。

© www.soinside.com 2019 - 2024. All rights reserved.