|
|
51CTO旗下网站
|
|
移步端
  • Python进阶学习 - 如何在Python官方过滤字符串列表

    本文通过使用不同之示范展示了如何在Python官方过滤列表中的字符串数据。您必须采取Python 3+来测试本文的示范。

    笔者:听听世界之鱼 来源:Linux支部| 2020-03-25 18:55

    Python采用列表数据类型在先后索引中存储多个数据。他的上班方法类似于其他编程语言的数字数组。filter()办法是Python的一种特别实用之主意。可以运用filter()办法从Python中的任何字符串、列表或字典中过滤一个或多个数值。他根据任何特定条件过滤数据。顶条件返回true时,他将积存数据,而返回false时将丢弃数据。本文通过使用不同之示范展示了如何在Python官方过滤列表中的字符串数据。您必须采取Python 3+来测试本文的示范。

    采用另一番列表过滤字符串列表

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

          
    1. #coding=utf-8  
    2. # 声明两个列表变量  
    3. list1 = ['Python', 'PHP', 'Java',  'Bash']  
    4. list2 = ['JavaScript是客户端脚本语言',  
    5.         'PHP是服务器端脚本语言',  
    6.          'Java是一种编程语言',  
    7.         'Kotlin是一种静态编程语言']  
    8. # 根据第一个列表过滤第二个列表  
    9. filter_data = [x for x in list2 if  
    10.               all(y  not in x for y in list1)]  
    11. # 在过滤前和过滤后打印列表数据  
    12. print("先后一个列表的情节:",  list1)  
    13. print("其次个列表的情节:", list2)  
    14. print("过滤后的第二个列表的情节:", filter_data) 

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

    进出口如下:

    先后一个列表的情节: ['Python', 'PHP', 'Java', 'Bash']

    其次个列表的情节: ['JavaScript是客户端脚本语言', 'PHP是服务器端脚本语言', 'Java是一种编程语言', 'Kotlin是一种静态编程语言']

    过滤后的第二个列表的情节: ['Kotlin是一种静态编程语言']

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

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

          
    1. # 声明两个列表变量  
    2. list1 = ['100', '67', '39', '505', '122', '287', '399']  
    3. list2 =  ['70', '100', '308', '415', '362', '230']  
    4. # 声明一个函数来过滤第一个列表中的数据  
    5. def  Filter(list1, list2):  
    6.     return [n for n in list1 if  
    7.             any(m in  n for m in list2)]  
    8. # 在新石器之前和下打印列表数据  
    9. print("list1的的情节:",  list1)  
    10. print("list2的的情节:", list2)  
    11. 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”起来的主题代码。正则表达式模式中采用'^'标志在文件的起始进行搜索。

          
    1. # 导入re模块以使用正则表达式  
    2. import re  
    3. # 声明列表包含科目编号  
    4. sublist = ['IDC-108',  'OKY-309', 'IDC-709', 'PHP-102', 'MIO-801']  
    5. # 声明过滤功能  
    6. def Filter(datalist):  
    7.     # 根据列表中的正则表达式搜索数据  
    8.     return [val  for val in datalist  
    9.         if re.search(r'^IDC', val)]  
    10. # 打印过滤器数据  
    11. print(Filter(sublist)) 

    运作脚本。子列表变量包含两个以“IDC”起来的值。运作脚本后,名将显示以下输出。

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

    采用lamda分立式过滤字符串列表

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

          
    1. # 声明一个包含linuxidc_word官方关键词的列表  
    2. linuxidc_word = ["系统", "linuxidc", "Python",  "Kotlin"]  
    3. # 定义文本,副列表中寻找单词  
    4. text = "Linux支部 linuxidc 是规范的 Linux 系统 门户网站,实时发布 新型 Kotlin  消息!"  
    5. # 根据空格分割文本并将单词存储在列表中  
    6. texttext_word = text.split()  
    7. # 采用lambda分立式过滤数据  
    8. filter_text = ' '.join((filter(lambda val: val not in  linuxidc_word, text_word)))  
    9. # 在过滤前和过滤后打印文本  
    10. print("\n过滤前的公文:\n", text)  
    11. print("过滤后的公文:\n",  filter_text) 

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

    过滤前的公文:

    Linux支部 linuxidc 是规范的 Linux 系统 门户网站,实时发布 新型 Kotlin 消息!

    过滤后的公文:

    Linux支部 是规范的 Linux 门户网站,实时发布 新型 消息!

    采用filter()办法过滤字符串列表

    filter()办法接受两个参数。先后一个指数采用函数名称或“ None”,其次个参数采用列表变量的称谓作为值。filter()办法如果返回true,则从列表中存储这些数据,否则将丢弃该数据。在此,先后一个参数值不指定其他值。整整不为false的值将下列表中寻找为已过滤数据。

          
    1. #声明混合数据列表  
    2. listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True,  '1']  
    3. # 采用None和列表调用filter()办法  
    4. filterfilteredData = filter(None,  listData)  
    5. #过滤数据后打印列表  
    6. print('过滤后的列表:')  
    7. for val in  filteredData:  
    8.     print(val) 

    运作脚本。该列表只包含一个false值,在过滤后的多寡中将省略该false值。运作脚本后将出现以下输出。

    总结:

    顶您需要从列表中寻找和搜索特定值时, 过滤非常有用。我期望上面的例证能帮助读者了解从字符串列表中过滤数据的主意。

    【义务编辑: 庞桂玉 TEL:(010)68476606】

    点赞 0
  • Python字符串  剧本
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

     迅速无敌之 Gitlab CI 接轨集成

    迅速无敌之 Gitlab CI 接轨集成

    打破运维与科研壁垒
    共5章 | KaliArch

    91人口订阅学习

    秒杀高并发白话实战

    秒杀高并发白话实战

    主流高并发架构
    共15章 | 51CTO崔皓

    59人口订阅学习

    网络排障一点通

    网络排障一点通

    网络排障及优化调整案例
    共20章 | 捷哥CCIE

    465人口订阅学习

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微


    1. 
         
          

    2.     
    3.