在列表理解/映射/过滤器中分配标识符
Assign identifier inside list comprehension/ mapping/ filter
我想将 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
的第二个参数取名'on the fly'。
即使是,我认为 Python 代码应该更明确(参见“The Zen of Python”),我建议将代码分成两行或更多行。
我想将 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
的第二个参数取名'on the fly'。
即使是,我认为 Python 代码应该更明确(参见“The Zen of Python”),我建议将代码分成两行或更多行。