#!/usr/bin/env python# -*- coding:utf-8 -*-‘‘‘filter过滤器‘‘‘# 若有一个需求用于实现:过滤掉一个列表中含有指定字符串的元素 ‘‘‘1、普通函数 people_list = [‘a‘,‘b_sb‘,‘c‘,‘d_sb‘]#定义功能函数用于判断列表元素def sb_show(n): return n.endswith(‘sb‘) #定义主函数,用于筛选列表def filter_test(func,array): ret = [] for p in array: if not func(p): ret.append(p) return ret print(filter_test(sb_show,people_list))‘‘‘ ‘‘‘2、匿名函数可以用匿名函数取代1中的sb_show(n)函数 people_list = [‘a‘,‘b_sb‘,‘c‘,‘d_sb‘]def filter_test(func,array): ret = [] for p in array: if not func(p): ret.append(p) return ret print(filter_test(lambda n:n.endswith(‘sb‘),people_list))‘‘‘ ‘‘‘3、filter函数 功能:处理过滤序列的元素,返回一个新序列 用法为 filter(func,array) 第一个参数func为处理函数(返回布尔值),第二个参数array为可迭代对象,同map函数一样,最终返回一个迭代器(在python 2中返回一个列表) 上述需求可以用filter实现如下: people_list = [‘a‘,‘b_sb‘,‘c‘,‘d_sb‘]res = filter(lambda n:not n.endswith(‘sb‘),people_list)print(list(res))‘‘‘
原文地址:https://www.cnblogs.com/Meanwey/p/9741247.html
时间: 2024-08-24 23:33:59