📜  python中的filter(1)

📅  最后修改于: 2023-12-03 14:46:37.701000             🧑  作者: Mango

Python中的filter

在Python中,filter是一种内置函数,它可用于过滤可迭代对象中的元素。Python中的迭代器是指能遍历所有元素的对象,例如列表、元组、字典、字符串等,甚至是用户定义的对象。

语法

filter()函数接收两个参数,第一个参数是函数,第二个参数是可迭代对象。其语法格式为:

filter(function, iterable)

其中,

  • function:用于筛选每个元素的函数,它接收一个参数,即可迭代对象中的每个元素,返回值为True或False。

  • iterable:可迭代对象,可以是序列、列表、元组、字典等。

函数function返回True的元素会被保留,而返回False的元素会被过滤掉。

示例

我们来看几个例子,以加深理解。

# 过滤出列表中的偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8]
result = filter(lambda x: x%2==0, lst)
print(list(result))   # [2, 4, 6, 8]

这个例子使用了lambda表达式定义了一个匿名函数用于判断元素是否为偶数,然后调用filter()函数,将要过滤的列表和函数作为参数传入,并使用list()函数将返回的filter对象转换为列表输出。

# 过滤出字典中所有值超过50的键值对
d = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50, 'f': 60}
result = dict(filter(lambda x:x[1]>50, d.items()))
print(result)   # {'f': 60}

上面的例子使用了items()函数将字典d转换为可迭代对象,然后使用lambda表达式定义了筛选条件,再将筛选出来的键值对放入另一个字典中输出。

总结

在Python中,filter函数可以通过用户自定义函数或lambda表达式作为参数,对可迭代对象中的元素进行筛选过滤。filter()函数返回的是一个filter对象,需要通过list()函数或其他方式转换为列表或其他内置类型。