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', '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表达式过滤字符串列表