Python中的filter函数:用法和案例
发布时间:2023-06-11 03:17:00
filter函数是Python中的一个内置函数,用于过滤序列中某些元素,返回由满足特定条件的元素组成的新的序列,常用于对列表、元组、字典等数据结构进行过滤,是函数式编程中的常用函数之一。
filter() 函数的基本用法:
filter(function, iterable)
参数:
function -- 判断函数。
iterable -- 可迭代对象。
函数function接受一个参数,返回布尔值(True or False),根据判断结果决定是否保留该元素。
案例:
1、使用filter函数过滤拼音中包含“u"或包含“o”的城市
city_list = ["beijing", "shanghai", "guangzhou", "shenzhen", "tianjin", "wuhan", "nanjing", "chongqing", "hangzhou"]
res = filter(lambda x: "u" in x or "o" in x, city_list)
for i in res:
print(i)
输出结果:
beijing guangzhou shoudingdosifeiji chongqing
2、使用filter函数过滤列表中的奇数
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] res = filter(lambda x: x % 2 == 1, num_list) print(list(res))
输出结果:
[1, 3, 5, 7, 9]
3、使用filter函数过滤字典中值为偶数的键值对
d = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
res = filter(lambda x: x[1] % 2 == 0, d.items())
print(list(res))
输出结果:
[('b', 2), ('d', 4)]
在这个例子中,将字典d的键值对通过items()方法获取,并使用filter函数过滤出值为偶数的键值对。
4、使用filter函数过滤列表中长度大于3的字符串
string_list = ["apple", "banana", "cat", "dog", "elephant", "fish", "goose"] res = filter(lambda s: len(s) > 3, string_list) print(list(res))
输出结果:
['apple', 'banana', 'elephant', 'goose']
5、使用filter函数过滤列表中非整数的元素
data_list = [23, 45, "hello", 56, "world”,”78”] res = filter(lambda x: isinstance(x, int), data_list) print(list(res))
输出结果:
[23, 45, 56]
在这个例子中,使用isinstance函数来判断元素是否为整数,是则返回True,否则返回False,利用这一特性过滤掉非整数的元素。
总结:
filter函数是Python中的内置函数,可以帮助我们快速过滤序列中满足特定条件的元素,可以大大节省代码编写的时间和代码的行数,使用复杂度低,值得我们学习和掌握。
