乐趣区

关于python:盘点两种方法判断一个列表里面按关键词进行筛选留下有关键词的标题

前言

前几天在群里看到有集体发问,我把题目记下来了,如下图所示。

看上去并不是很难的样子,这个示例代码,看上去逻辑什么的也没有问题,然而后果输入就是有些不对。究其原因,因为 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)
 运行之后,后果如下图所示:


可能有的小伙伴会问了,题目要求蕴含关键词的就留下,否则就从列表中删除,我这里的确没有做这个操作,我倒是感觉把失去的值返回进去,间接拿到手里,至于后续解决,就不得而知了。如果你真感兴趣,这里也提供一个思路,能够将失去的后果去列表中对应的找索引值,将找到的索引存起来,而后针对没有找到的索引进行删除即可。

三、总结
本文针对列表的关键词蕴含问题,给出了两种解决办法,顺利帮忙粉丝解决了问题。尽管文中例举了两种办法,然而小编置信必定还有其余的办法的,也欢送大家在评论区谏言。

小伙伴们,快快用实际一下吧!

退出移动版