本示例说明了使用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值。运行脚本后将出现以下输出。
总结:
当您需要从列表中搜索和检索特定值时, 过滤非常有用。我希望上面的例子能帮助读者理解从字符串列表中过滤数据的方法。