Python 在列表理解/映射/过滤器内分配标识符
我想将lambda表达式传递给捕获外部变量Python 在列表理解/映射/过滤器内分配标识符,python,list-comprehension,identifier,Python,List Comprehension,Identifier,我想将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?无法为过滤器的第
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代码应该更明确(请参见“”),我建议将代码分成两行或更多行。不清楚函数应该做什么。你能解释一下吗?你想要一个列表,在列表中@
之后的索引处包含listl
的内容吗?@Graipher我只想将列表绑定到@tol
之后。为了激发这一点,我说“假设列表是其他计算的结果,比如列表理解”。所以你基本上是在寻找列表理解[x对于l中的x,如果l.count(x)==1]
。换句话说,可能有不同的方法来实现你想要的,如果您展示一些示例输入和预期输出,我们可以为您提供帮助。如果列表理解不是解决方案,您可能必须将其作为生成器或显式for循环编写,或者。。。