我想将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
?
不可能“动态”给filter
的第二个参数。
即便如此,我认为Python代码应该更加明确(参见“The Zen of Python”),我建议将代码分成两行或更多行。