Python中过滤字符串列表的方法


Posted in Python onDecember 22, 2020

Python使用列表数据类型在顺序索引中存储多个数据。它的工作方式类似于其他编程语言的数字数组。filter()方法是Python的一种非常有用的方法。可以使用filter()方法从Python中的任何字符串、列表或字典中过滤一个或多个数值。它根据任何特定条件过滤数据。当条件返回true时,它将存储数据,而返回false时将丢弃数据。本文通过使用不同的示例展示了如何在Python中过滤列表中的字符串数据。您必须使用Python 3+来测试本文的示例。

使用另一个列表过滤字符串列表

本示例说明了如何在不使用任何方法的情况下过滤字符串列表中的数据。 字符串列表在此使用另一个列表进行过滤。 在此,声明了两个列表变量,名称分别为list1和list2。 使用list1的值过滤list2的值。 该脚本会将list2的每个值的第一个单词与list1的值进行匹配,并打印list1中不存在的那些值。

#coding=utf-8
# 声明两个列表变量
list1 = ['Python', 'PHP', 'Java', 'Bash']
list2 = ['JavaScript是客户端脚本语言',
    'PHP是服务器端脚本语言',
     'Java是一种编程语言',
    'Kotlin是一种静态编程语言']

# 根据第一个列表过滤第二个列表
filter_data = [x for x in list2 if
       all(y not in x for y in list1)]

# 在过滤前和过滤后打印列表数据
print("第一个列表的内容:", list1)
print("第二个列表的内容:", list2)
print("过滤后的第二个列表的内容:", filter_data)

运行脚本。 在此,list1不包含单词“Kotlin”。 输出将仅包含list2中的一个值,即 ['Kotlin是一种静态编程语言']。

如何在Python中过滤字符串列表

输出如下:

第一个列表的内容: ['Python', 'PHP', 'Java', 'Bash']
第二个列表的内容: ['JavaScript是客户端脚本语言', 'PHP是服务器端脚本语言', 'Java是一种编程语言', 'Kotlin是一种静态编程语言']
过滤后的第二个列表的内容: ['Kotlin是一种静态编程语言']

使用另一个列表和自定义函数过滤字符串列表

本示例说明如何使用另一个列表和自定义过滤器功能过滤字符串列表。 该脚本包含两个名为list1和list2的列表变量。 自定义过滤器功能将找出两个列表变量的公共值。

# 声明两个列表变量
list1 = ['100', '67', '39', '505', '122', '287', '399']
list2 = ['70', '100', '308', '415', '362', '230']

# 声明一个函数来过滤第一个列表中的数据
def Filter(list1, list2):
  return [n for n in list1 if
      any(m in n for m in list2)]

# 在过滤器之前和之后打印列表数据
print("list1的的内容:", list1)
print("list2的的内容:", list2)
print("过滤后的数据",Filter(list1, list2))

运行脚本。 两个列表变量中都存在100的值。 运行脚本后,将生成以下输出。

list1的的内容: ['100', '67', '39', '505', '122', '287', '399']
list2的的内容: ['70', '100', '308', '415', '362', '230']
过滤后的数据 ['100']

使用正则表达式过滤字符串列表

通过使用前两个示例中的all()和any()方法来过滤列表。 在此示例中,使用正则表达式从列表中过滤数据。 正则表达式是一种模式,通过该模式可以搜索或匹配任何数据。 Python中使用're'模块在脚本中应用正则表达式。 在此,使用主题代码声明列表。 正则表达式用于过滤以“ CSE”开头的主题代码。 正则表达式模式中使用'^'符号在文本的开头进行搜索。

# 导入re模块以使用正则表达式
import re

# 声明列表包含科目编号
sublist = ['IDC-108', 'OKY-309', 'IDC-709', 'PHP-102', 'MIO-801']

# 声明过滤功能
def Filter(datalist):
  # 根据列表中的正则表达式搜索数据
  return [val for val in datalist
    if re.search(r'^IDC', val)]

# 打印过滤器数据
print(Filter(sublist))

运行脚本。 子列表变量包含两个以“IDC”开头的值。 运行脚本后,将显示以下输出。

['IDC-108', 'IDC-709']

使用lamda表达式过滤字符串列表

本示例说明了使用lamda表达式从字符串列表中过滤数据。 在这里,名为search_word的列表变量用于从名为text的文本变量中过滤内容。 通过使用split()方法,基于空间将文本内容转换为名为text_word的列表。 lamda表达式将忽略text_word中存在于search_word中的那些值,并通过添加空格将过滤后的值存储在变量中。

# 声明一个包含linuxidc_word中关键词的列表
linuxidc_word = ["系统", "linuxidc", "Python", "Kotlin"]

# 定义文本,从列表中搜索单词
text = "Linux公社 linuxidc 是专业的 Linux 系统 门户网站,实时发布 最新 Kotlin 资讯!"

# 根据空格分割文本并将单词存储在列表中
text_word = text.split()

# 使用lambda表达式过滤数据
filter_text = ' '.join((filter(lambda val: val not in linuxidc_word, text_word)))

# 在过滤前和过滤后打印文本
print("\n过滤前的文本:\n", text)
print("过滤后的文本:\n", filter_text)

运行脚本。 运行脚本后,将显示以下输出。

过滤前的文本:
Linux公社 linuxidc 是专业的 Linux 系统 门户网站,实时发布 最新 Kotlin 资讯!
过滤后的文本:
Linux公社 是专业的 Linux 门户网站,实时发布 最新 资讯!

使用filter()方法过滤字符串列表

filter()方法接受两个参数。 第一个参数采用函数名称或“ None”,第二个参数采用列表变量的名称作为值。 filter()方法如果返回true,则从列表中存储这些数据,否则将丢弃该数据。 在此,第一个参数值不指定任何值。 所有不为false的值将从列表中检索为已过滤数据。

#声明混合数据列表
listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True, '1']

# 使用None和列表调用filter()方法
filteredData = filter(None, listData)

#过滤数据后打印列表
print('过滤后的列表:')
for val in filteredData:
  print(val)

运行脚本。该列表只包含一个false值,在过滤后的数据中将省略该false值。

总结:

当您需要从列表中搜索和检索特定值时, 过滤非常有用。我希望上面的例子能帮助读者理解从字符串列表中过滤数据的方法。

作者: wyh草样

出处:https://www.cnblogs.com/wyh0923/p/14166552.html

以上就是Python中过滤字符串列表的方法的详细内容,更多关于Python中过滤字符串列表的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python3调用R的示例代码
Feb 23 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
Django 路由系统URLconf的使用
Oct 11 Python
python TKinter获取文本框内容的方法
Oct 11 Python
python实现一组典型数据格式转换
Dec 15 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
Python List列表对象内置方法实例详解
Oct 22 Python
python中如何使用insert函数
Jan 09 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
python中@property的作用和getter setter的解释
Dec 22 #Python
地图可视化神器kepler.gl python接口的使用方法
Dec 22 #Python
Python实现Word文档转换Markdown的示例
Dec 22 #Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 #Python
Django中ORM的基本使用教程
Dec 22 #Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 #Python
Python 多进程原理及实现
Dec 21 #Python
You might like
global.php
2006/12/09 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
python操作CouchDB的方法
2014/10/08 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
详解Django CAS 解决方案
2019/10/30 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
物业管理个人自我评价
2013/11/08 职场文书
森林防火标语
2014/06/23 职场文书
家长会感言
2015/08/01 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
python 网络编程要点总结
2021/06/18 Python
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js