我想从列表列表中过滤元素,并使用lambda迭代每个元素的元素.例如,给定列表:
a = [[1,2,3],[4,5,6]]
Run Code Online (Sandbox Code Playgroud)
假设我只想保留列表总和大于N的元素.我尝试写:
filter(lambda x, y, z: x + y + z >= N, a)
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
<lambda>() takes exactly 3 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
如何在将每个元素的值分配给x,y和z时进行迭代?像zip这样的东西,但对于任意长的列表.
谢谢,
ps我知道我可以使用:filter(lambda x:sum(x)...,a)来写这个,但这不是重点,想象这些不是数字而是任意元素,我想将它们的值赋给变量名.
我试图看看是否可以使用列表推导更好地使这些代码.
可以说我有以下列表:
a_list = [
'HELLO',
'FOO',
'FO1BAR',
'ROOBAR',
'SHOEBAR'
]
regex_list = [lambda x: re.search(r'FOO', x, re.IGNORECASE),
lambda x: re.search(r'RO', x, re.IGNORECASE)]
Run Code Online (Sandbox Code Playgroud)
我基本上想要将所有没有任何匹配的元素添加regex_list到另一个列表中.
例如==>
newlist = []
for each in a_list:
for regex in regex_list:
if(regex(each) == None):
newlist.append(each)
Run Code Online (Sandbox Code Playgroud)
如何使用列表推导来完成此操作?它甚至可能吗?