#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值。
总结:当您须要从列表中搜索和检索特定值时, 过滤非常有用。我希望上面的例子能帮助读者理解从字符串列表中过滤数据的方法。