在 python 中选择包含特定单词的短语
Picking phrases containing specific words in python
我有一个包含 10 个名字的列表和一个包含许多短语的列表。我只想 select 包含这些名称之一的短语。
ArrayNames = [Mark, Alice, Paul]
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]
在这个例子中,考虑到包含 Paul 的面孔,有没有办法只选择第二个短语,给定这两个数组?
这是我试过的:
def foo(x,y):
tmp = []
for phrase in x:
if any(y) in phrase:
tmp.append(phrase)
print(tmp)
x是短语数组,y是名字数组。
这是输出:
if any(y) in phrase:
TypeError: coercing to Unicode: need string or buffer, bool found
我非常不确定我使用的关于 any() 构造的语法。有什么建议吗?
您对 any 的用法不正确,请执行以下操作:
ArrayNames = ['Mark', 'Alice', 'Paul']
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]
result = []
for phrase in ArrayPhrases:
if any(name in phrase for name in ArrayNames):
result.append(phrase)
print(result)
输出
['Paul likes apples']
你得到一个 TypeError 因为任何 returns 一个 bool 并且你试图在一个字符串中搜索一个 bool (if any(y) in phrase:
)。
请注意 any(y)
有效,因为它将使用 y
.
的每个字符串的 truthy 值
我有一个包含 10 个名字的列表和一个包含许多短语的列表。我只想 select 包含这些名称之一的短语。
ArrayNames = [Mark, Alice, Paul]
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]
在这个例子中,考虑到包含 Paul 的面孔,有没有办法只选择第二个短语,给定这两个数组? 这是我试过的:
def foo(x,y):
tmp = []
for phrase in x:
if any(y) in phrase:
tmp.append(phrase)
print(tmp)
x是短语数组,y是名字数组。 这是输出:
if any(y) in phrase:
TypeError: coercing to Unicode: need string or buffer, bool found
我非常不确定我使用的关于 any() 构造的语法。有什么建议吗?
您对 any 的用法不正确,请执行以下操作:
ArrayNames = ['Mark', 'Alice', 'Paul']
ArrayPhrases = ["today is sunny", "Paul likes apples", "The cat is alive"]
result = []
for phrase in ArrayPhrases:
if any(name in phrase for name in ArrayNames):
result.append(phrase)
print(result)
输出
['Paul likes apples']
你得到一个 TypeError 因为任何 returns 一个 bool 并且你试图在一个字符串中搜索一个 bool (if any(y) in phrase:
)。
请注意 any(y)
有效,因为它将使用 y
.