soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
遍历字符串列表,查找关键字和打印

取两个由字符串组成的列表:

strings = ['hello everyone!', 'how are you doing?', 'are you doing well?', 'are you okay?', 'good, me too.']searching_for = ['are', 'you', 'doing']

我的目标是搜索其中strings的每个项目,searching_for并打印包含这些关键字的完整字符串。即,我希望我的输出是:

Output: ['how are you doing?', 'are you doing well?']

请注意,输出仅是中的第二项和第三项strings,它不包含第四项。

我不确定为什么这对我来说如此困难,但是我认为这归结为我对Python不够了解。我想让它具有足够的通用性,以便我可以在很大的字符串列表中搜索我提供的关键字。到目前为止,这是我的解决方案:

def search(*args):
arg_list = []
search_for = numpy.append(arg_list, args)

for i in strings:
for j in search_for:
if all(j in i) is True:
print(i)

但这会引发一个错误TypeError: 'bool' object is not iterable我已经使用Python的内置filter函数和其他一些函数尝试了上述代码的一些不同迭代,但是我一直迷恋于类似的错误。我也不确定是否会给我一个列表,我认为它将在终端的新行中显示结果。

all(或any)将尝试遍历其输入;TrueFalse(作为的结果j in i)不可迭代。这就是导致以下原因的原因TypeError

all(True)# TypeError: 'bool' object is not iterable

相反,使您的内部循环更简单:

def search(*args):
arg_list = []
arg_list.append(args)

for i in strings:
if all(j in i for j in arg_list):
print(i)

请注意,您没有需要all(...) is True,因为all将已要么退回TrueFalse

另外,在此处使用numpy.append将元素附加到list会过分杀人。list.append直接使用并对其进行迭代。

可以试试

print([i for i in strings if all([s in i for s in searching_for])])

输出量

['how are you doing?', 'are you doing well?']

此列表理解将检查searching_forlist中的所有单词是否在的每个句子中strings,如果是,它将打印该句子。

试试这个:

for st in strings:
if set(searching_for).issubset(set(st[:-1].split())):
print(st)

喏,给你 :

strings = ['hello everyone!', 'how are you doing?', 'are you doing well?', 'are you okay?', 'good, me too.']kws = ['are', 'you', 'doing']for s in strings:
for w ins.split():
if w in kws:
print(s)
break

在python中,有一个叫做list comprehension的东西,它比长for循环结构更有效,更容易阅读要创建您要查找的列表,这是一个列表理解的示例:

result = [s for s in strings if all(sf in s for sf in searching_for)]# ['how are you doing?', 'are you doing well?']

我认为,它确实是如何告知的:

  • 创建(包围括号)列表

  • s变量中的字符串strings

  • 如果可以在以下位置找到所有sf变量字符串searching_fors



2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示