当前位置: 首页 > 科技观察

Python进阶学习——如何在Python中过滤字符串列表

时间:2023-03-15 17:04:16 科技观察

Python使用列表数据类型将多个数据存储在顺序索引中。它的工作方式类似于其他编程语言中的数字数组。filter()方法是Python中一个非常有用的方法。使用filter()方法可以从Python中的任何字符串、列表或字典中过滤一个或多个数值。它根据任何特定标准过滤数据。它在条件返回true时存储数据,在返回false时丢弃数据。本文通过不同的例子展示了如何在Python中过滤列表中的字符串数据。您必须使用Python3+来测试本文中的示例。使用另一个列表过滤字符串列表此示例说明如何在不使用任何方法的情况下过滤字符串列表中的数据。此处使用另一个列表过滤字符串列表。这里,声明了两个列表变量,名称为list1和list2。使用list1的值过滤list2的值。该脚本会将list2的每个值的第一个单词与list1的值进行匹配,并打印那些不存在于list1中的值。#coding=utf-8#声明两个列表变量list1=['Python','PHP','Java','Bash']list2=['JavaScriptisaclient-sidescriptinglanguage','PHPisaserver-sidescriptinglanguage','Javaisaprogramminglanguage','Kotlinisastaticprogramminglanguage']#根据第一个列表过滤第二个列表filter_data=[xforxinlist2ifall(ynotinxforyinlist1)]#打印过滤前后的列表数据print("第一个列表的内容:",list1)print("第二个列表的内容:",list2)print("第二个列表过滤后的内容:",filter_data)运行脚本。在这里,list1不包含单词“Kotlin”。输出将仅包含list2中的一个值,即['Kotlinisastaticprogramminglanguage']。输出如下:第一个列表的内容:['Python','PHP','Java','Bash']第二个列表的内容:['JavaScriptisaclient-sidescriptinglanguage','PHPisaserver-sidescriptlanguage','Javaisaprogramminglanguage','Kotlinisastaticprogramminglanguage']过滤后第二个列表的内容:['Kotlinisastaticprogramminglanguage']usinganotherlistandcustomFunction过滤字符串列表此示例说明如何使用另一个列表和自定义过滤函数过滤字符串列表。该脚本包含两个名为list1和list2的列表变量。自定义过滤器函数将找到两个列表变量的公共值。#声明两个列表变量list1=['100','67','39','505','122','287','399']list2=['70','100','308','415','362','230']#声明一个函数过滤第一个列表中的数据defFilter(list1,list2):return[nforninlist1ifany(minnforminlist2)]#打印过滤前后的列表数据打印("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模块使用正则表达式importre#声明列表包含主题号sublist=['IDC-108','OKY-309','IDC-709','PHP-102','MIO-801']#声明过滤函数defFilter(datalist):#在列表中根据正则表达式查找数据return[valforvalindatalistifre.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=["system","linuxidc","Python","Kotlin"]#definetext,从列表中搜索词text="Linuxcommunelinuxidc是一个专业的Linux系统门户网站,实时发布最新Kotlin资讯!”#根据空格拆分文本,并将单词存储在列表中texttext_word=text.split()#使用lambda表达式过滤数据filter_text=''.join((filter(lambdaval:valnotinlinuxidc_word,text_word)))#前后打印文本filteringprint("\n过滤前的文本:\n",text)print("过滤后的文本:\n",filter_text)运行脚本。运行脚本后,将显示以下输出。过滤前的文字:LinuxCommunelinuxidc是专业的Linux系统门户网站,实时发布最新Kotlin资讯!过滤文:Linux公社是专业的Linux门户网站,实时发布最新资讯!使用filter()方法过滤字符串列表filter()方法接受两个参数。第一个参数采用函数名称或“无”,第二个参数采用列表变量的名称作为值。如果filter()方法返回true,则数据从列表中存储,否则数据被丢弃。这里,第一个参数值不指定任何值。所有不为false的值都将从列表中检索为过滤后的数据。#declare混合数据列表listData=['linuxidc',90,9,'com',100,False,22,True,'1']#callfilter()方法withNoneandlistfilterfilteredData=filter(None,listData)#过滤数据后打印列表print('filteredlist:')forvalinfilteredData:print(val)运行脚本。该列表仅包含一个假值,在过滤后的数据中将被忽略。运行脚本后会出现以下输出。简介:当您需要从列表中搜索和检索特定值时,过滤很有用。希望以上例子可以帮助读者理解从字符串列表中过滤数据的方法。