欢迎访问宙启技术站
智能推送

Python中filter函数的用法及示例

发布时间:2023-06-15 00:22:46

Python中的filter函数是一种内置函数,用于过滤序列中满足条件的元素。该函数的基本语法如下:

filter(function, iterable)

其中,function是过滤条件的函数,可以自定义或使用Python内置函数;iterable是迭代器或可迭代对象,包含要过滤的元素。

filter()函数的工作过程为,对iterable中的每个元素应用function函数进行判断,如果返回True,则保留该元素,否则丢弃。最后返回一个新的可迭代对象,包含所有满足条件的元素。

下面是一些filter()函数的使用示例。

示例一:筛选出列表中的偶数

def is_even(n):
    return n % 2 == 0

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_lst = list(filter(is_even, lst))

print(even_lst)  # [2, 4, 6, 8]

这个例子中,我们自定义了函数is_even,用于判断是否为偶数。然后使用filter()函数把列表lst中所有偶数筛选出来,存储到新的列表even_lst中。

示例二:删除字符串列表中的空字符串

lst = ['hello', '', 'world', '', '!', ' ']
clean_lst = list(filter(lambda s: s.strip(), lst))

print(clean_lst)  # ['hello', 'world', '!']

这个例子中,我们使用了lambda表达式定义了一个判断条件,即删除列表中的空字符串。使用filter()函数将满足条件的字符串存储到新的列表clean_lst中。

示例三:过滤字典中的值小于10的键值对

dct = {'a': 11, 'b': 5, 'c': 13, 'd': 2, 'e': 6}
filtered_dct = dict(filter(lambda item: item[1] >= 10, dct.items()))

print(filtered_dct)  # {'a': 11, 'c': 13}

这个例子中,我们使用了lambda表达式定义了一个判断条件,即字典值大于等于10的键值对。使用filter()函数将满足条件的键值对存储到新的字典filtered_dct中。

总之,filter()函数是一个十分有用的函数,可以用于对序列进行筛选和过滤,使得我们的代码更加简洁和高效。熟练掌握filter()函数的用法,将对Python编程有很大的帮助。