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 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python实现统计单词出现的个数
May 28 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Django中间件基础用法详解
Jul 18 Python
Python高级特性 切片 迭代解析
Aug 23 Python
Python使用python-docx读写word文档
Aug 26 Python
python conda操作方法
Sep 11 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 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
PHP封装的完整分页类示例
2018/08/21 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python的gevent框架的入门教程
2015/04/29 Python
python numpy 按行归一化的实例
2019/01/21 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python 求10个数的平均数实例
2019/12/16 Python
python实现图像全景拼接
2020/03/27 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Python用Jira库来操作Jira
2020/12/28 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
机关干部三严三实心得体会
2014/10/13 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
学校德育工作总结2015
2015/05/11 职场文书
2015年人民调解工作总结
2015/05/18 职场文书