gpt4 book ai didi

python - 通过python过滤函数传递参数

转载 作者:太空狗 更新时间:2023-10-30 02:04:35 26 4
gpt4 key购买 nike

我正在尝试按某个关键字过滤单词/短语列表。我发现的所有关于 filter() 函数的例子都使用了数字,所以我想知道这是否可能。我知道如果它调用的函数返回 Truefilter() 会将一个项目放入结果列表。

假设我有这样的东西:

def filtCheck(item, filt):
if filt in item:
return True

def funct():
filt = 'Hi'
set1 = ['Hello, world', 'Hi there', 'Hi friend']
set2 = filter(filtCheck(filt), set1)

print set2

这是我感到困惑的地方。我将如何在 set2 行上写第一个参数?显然不是它的编写方式,因为我的 filtCheck 函数有两个参数,而我只提供一个。我是否也需要修改我的 filtCheck 功能?但是如果我从中取出 item 参数,就没有字符串来检查 filt 是否在里面。

最佳答案

你可以使用 lambda (另见 http://docs.python.org/2/reference/expressions.html#lambda ):

set2 = filter(lambda item: filtCheck(item, 'Hi'), set1)

或者您可以使用 functools.partial :

from functools import partial
set2 = filter(partial(filtCheck, filt="Hi"), set1)

或者您可以跳过过滤功能并使用 list comprehension :

set2 = [item for item in set1 if filtCheck(item, "Hi")]

# or simply

set2 = [item for item in set1 if "Hi" in item]

关于python - 通过python过滤函数传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com