如何使用lamba循环的列表元素?

2024-06-16 08:32:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用filter和lamba来过滤names中的元素。 但每次我只能放一根绳子。 我想使用jen中的每个元素作为循环方式来过滤names中的元素。你知道吗

怎么做?请告诉我
这是我的密码:

names = ['Toy','Men','Moi','Cano']
jen = ['en','oi','ok','no','t']

filtered_names = filter(lambda item: 'en' in item, names)

for item in filtered_names:
    print(item)

我现在的输出是:

男人

我希望它可以是:

for x in jen
filtered_names = filter(lambda item: x in item, names)

希望它能像一个循环,这样我就不需要改变filter(lambda item: x in item, names)中的每个元素了


Tags: lambdain元素密码fornames方式filter
2条回答

如果你想做一个循环,那么试试这个:

from functools import partial

def x_in_y(word, inner):
    return inner in word

names = ['Toy','Men','Moi','Cano']
jen = ['en','oi','ok','no','t']


for i in jen:
    print(f"Scanning for {i}")
    filtered_names = filter(partial(x_in_y, inner=i), names)
    for name in filtered_names:
        print(name)

输出:

Scanning for en
Men
Scanning for oi
Moi
Scanning for ok
Scanning for no
Cano
Scanning for t

使用^{}

filtered_names = filter(lambda item: any(x in item for x in jen), names)

或者作为一个列表:

filtered_names = [item for item in names if any(x in item for x in jen)]

相关问题 更多 >