我试着用一些关键字过滤单词/短语列表。我发现的filter()
函数的所有示例都使用数字,所以我想知道这是否可能。我知道如果filter()
调用的函数返回True
,它将把一个项放入结果列表中。在
假设我有这样的东西:
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行写第一个参数?显然不是这样写的,因为filtercheck函数需要两个参数,而我只提供了一个。我也需要修改我的filtCheck函数吗?但是如果我去掉item参数,就没有字符串来检查filt是否在。在
你可以用咖喱:
您可以使用lambda(另请参见http://docs.python.org/2/reference/expressions.html#lambda):
或者您可以使用^{} :
^{pr2}$或者您可以跳过过滤器函数,使用list comprehension:
更容易切换到列表组件:
相关问题 更多 >
编程相关推荐