共计 992 个字符,预计需要花费 3 分钟才能阅读完成。
前言
前几天在群里看到有集体发问,我把题目记下来了,如下图所示。
看上去并不是很难的样子,这个示例代码,看上去逻辑什么的也没有问题,然而后果输入就是有些不对。究其原因,因为 title 里边是列表,而不是字符串,须要再多加一层提取就好了。
一、解决办法
这里提供两个办法,供大家学习参考,当然也必定有其余的办法,欢送大家踊跃尝试。
办法一:惯例读取
这个办法和示例代码中的逻辑类似,只不过针对列表多取了一次,失去了列表里边的具体的元素,后果就进去了。
# -*- coding: utf-8 -*-
# 办法一
keywordlist = ['python', '利用']
title = [['人生苦短,我利用 python'], ['Rick Xiang 666'], ['歪歪 nb'], ['打 call'], ['网络爬虫的利用']]
for luwen in title:
if keywordlist[0] in luwen[0] and keywordlist[1] in luwen[0]:
print(luwen)
运行后,代码后果如下:
办法二:应用 operator 库
这个办法也是能够满足要求的。
# -*- coding: utf-8 -*-
import operator
keywordlist = ['python', '利用']
title = [['人生苦短,我利用 python'], ['Rick Xiang 666'], ['歪歪 nb'], ['打 call'], ['网络爬虫的利用'], ['python 爬虫与数据挖掘']]
for luwen in title:
if operator.contains(luwen[0], keywordlist[0]) and operator.contains(luwen[0], keywordlist[1]):
print(luwen)
运行之后,后果如下图所示:
可能有的小伙伴会问了,题目要求蕴含关键词的就留下,否则就从列表中删除,我这里的确没有做这个操作,我倒是感觉把失去的值返回进去,间接拿到手里,至于后续解决,就不得而知了。如果你真感兴趣,这里也提供一个思路,能够将失去的后果去列表中对应的找索引值,将找到的索引存起来,而后针对没有找到的索引进行删除即可。
三、总结
本文针对列表的关键词蕴含问题,给出了两种解决办法,顺利帮忙粉丝解决了问题。尽管文中例举了两种办法,然而小编置信必定还有其余的办法的,也欢送大家在评论区谏言。
小伙伴们,快快用实际一下吧!
正文完