Python 如何对字符串使用filter()并获取多个单词的出现?

Python 如何对字符串使用filter()并获取多个单词的出现?,python,lambda,Python,Lambda,我能够捕获第一个实例,但尝试在返回的集合中获取计数或只是重复 例如,下面是我的简化代码 word_list = ['Geico','Mike'] a_string = "what day is it, Mike Mike Mike" sets = filter(lambda x:x in a_string,word_list) 。。。我得到了['Mike'],但我想得到['Mike','Mike','Mike'];如果可能的话,只是为了更好地理解如何在过滤器中迭代。我的项目可能不需要每个“Mi

我能够捕获第一个实例,但尝试在返回的
集合中获取计数或只是重复

例如,下面是我的简化代码

word_list = ['Geico','Mike']
a_string = "what day is it, Mike Mike Mike"
sets = filter(lambda x:x in a_string,word_list)

。。。我得到了
['Mike']
,但我想得到
['Mike','Mike','Mike']
;如果可能的话,只是为了更好地理解如何在过滤器中迭代。我的项目可能不需要每个“Mike”,但了解这一点将有助于我了解filter()与lambda的用法;因此,对我来说,改进这段代码比使用新方法更重要。

了解过滤器:

你正在另一个方向寻找。 您应该这样做
过滤器(针、草堆)
但是你正在做
过滤(草堆、针)

范例

>>> names = ['Anna', 'Grant', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> b_names = filter(lambda s: s.startswith('B'), names)
>>> print b_names
#Output
['Bob', 'Barbara']
过滤器(函数,iterable)
相当于[
如果函数(item)为iterable中的项]
如果函数不是None
[如果函数是None,iterable中的项]

了解兰巴:
lambda
只是
function
的另一个词,当您阅读以下行时,请在脑海中将
lambda
替换为
function

>>> f = lambda x: x + 10
>>> f(3)
13
示例:2

f = lambda x, y : x * y
上述功能等同于以下功能

def f(x, y):
    return x * y
lambda
返回一个函数,给定
符号左侧的参数:
符号将返回其右侧表达式的值。 更多关于lambda的信息


了解过滤器:

你正在另一个方向寻找。 您应该这样做
过滤器(针、草堆)
但是你正在做
过滤(草堆、针)

范例

>>> names = ['Anna', 'Grant', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> b_names = filter(lambda s: s.startswith('B'), names)
>>> print b_names
#Output
['Bob', 'Barbara']
过滤器(函数,iterable)
相当于[
如果函数(item)为iterable中的项]
如果函数不是None
[如果函数是None,iterable中的项]

了解兰巴:
lambda
只是
function
的另一个词,当您阅读以下行时,请在脑海中将
lambda
替换为
function

>>> f = lambda x: x + 10
>>> f(3)
13
示例:2

f = lambda x, y : x * y
上述功能等同于以下功能

def f(x, y):
    return x * y
lambda
返回一个函数,给定
符号左侧的参数:
符号将返回其右侧表达式的值。 更多关于lambda的信息


了解过滤器:

你正在另一个方向寻找。 您应该这样做
过滤器(针、草堆)
但是你正在做
过滤(草堆、针)

范例

>>> names = ['Anna', 'Grant', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> b_names = filter(lambda s: s.startswith('B'), names)
>>> print b_names
#Output
['Bob', 'Barbara']
过滤器(函数,iterable)
相当于[
如果函数(item)为iterable中的项]
如果函数不是None
[如果函数是None,iterable中的项]

了解兰巴:
lambda
只是
function
的另一个词,当您阅读以下行时,请在脑海中将
lambda
替换为
function

>>> f = lambda x: x + 10
>>> f(3)
13
示例:2

f = lambda x, y : x * y
上述功能等同于以下功能

def f(x, y):
    return x * y
lambda
返回一个函数,给定
符号左侧的参数:
符号将返回其右侧表达式的值。 更多关于lambda的信息


了解过滤器:

你正在另一个方向寻找。 您应该这样做
过滤器(针、草堆)
但是你正在做
过滤(草堆、针)

范例

>>> names = ['Anna', 'Grant', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> b_names = filter(lambda s: s.startswith('B'), names)
>>> print b_names
#Output
['Bob', 'Barbara']
过滤器(函数,iterable)
相当于[
如果函数(item)为iterable中的项]
如果函数不是None
[如果函数是None,iterable中的项]

了解兰巴:
lambda
只是
function
的另一个词,当您阅读以下行时,请在脑海中将
lambda
替换为
function

>>> f = lambda x: x + 10
>>> f(3)
13
示例:2

f = lambda x, y : x * y
上述功能等同于以下功能

def f(x, y):
    return x * y
lambda
返回一个函数,给定
符号左侧的参数:
符号将返回其右侧表达式的值。 更多关于lambda的信息

过滤器非常直观: 你给它一些iterable和约束(你的lambda函数)。然后,它将检查每个项目并仅保留它,如果它满足约束条件

因此,在您的情况下,您希望迭代句子中的单词(因此首先拆分),并且仅保留它们,如果它们在您的单词列表中:

word_list = ['Geico','Mike']
a_string = "what day is it, Mike Mike Mike"
sets = filter(lambda x: x in word_list, a_string.split())
print(list(sets))
过滤器非常直观: 你给它一些iterable和约束(你的lambda函数)。然后,它将检查每个项目并仅保留它,如果它满足约束条件

因此,在您的情况下,您希望迭代句子中的单词(因此首先拆分),并且仅保留它们,如果它们在您的单词列表中:

word_list = ['Geico','Mike']
a_string = "what day is it, Mike Mike Mike"
sets = filter(lambda x: x in word_list, a_string.split())
print(list(sets))
过滤器非常直观: 你给它一些iterable和约束(你的lambda函数)。然后,它将检查每个项目并仅保留它,如果它满足约束条件

因此,在您的情况下,您希望迭代句子中的单词(因此首先拆分),并且仅保留它们,如果它们在您的单词列表中:

word_list = ['Geico','Mike']
a_string = "what day is it, Mike Mike Mike"
sets = filter(lambda x: x in word_list, a_string.split())
print(list(sets))
过滤器非常直观: 你给它一些iterable和约束(你的lambda函数)。然后,它将检查每个项目并仅保留它,如果它满足约束条件

因此,在您的情况下,您希望迭代句子中的单词(因此首先拆分),并且仅保留它们,如果它们在您的单词列表中:

word_list = ['Geico','Mike']
a_string = "what day is it, Mike Mike Mike"
sets = filter(lambda x: x in word_list, a_string.split())
print(list(sets))

我想您要筛选按“”拆分的\u字符串列表  取决于每个单词是否在单词列表中

我的答覆是:

sets = filter(lambda x:x in word_list, a_string.split())
或:


我想你要过滤李