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

使用python的filter()函数过滤列表

发布时间:2023-06-26 15:19:28

在Python中,filter()函数是一个内置的函数,用于过滤序列(常用的是列表、元组或字符串)中的元素,按照条件将满足条件的对象筛选出来。filter()函数返回一个新序列,这个新序列包含了满足条件的所有元素。

filter()函数需要一个函数和一个序列作为参数,返回的是一个迭代器,可以通过list()函数将其转换为列表。其中,第一个参数为过滤规则,第二个参数为被过滤的序列。当第一个参数规则为True时,返回值就会被包含在结果中。

下面,我们通过例子来说明filter()函数的用法。

例子1:

# 过滤掉列表中所有的偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 定义规则函数
def odd(x):
    return x%2 == 1

# 使用 filter() 过滤
odds = filter(odd, lst)

# 输出结果
print(list(odds))

运行结果:

[1, 3, 5, 7, 9]

例子2:

# 过滤掉字符串中所有的数字
str1 = "abc123def456"

# 定义规则函数
def is_digit(c):
    return not c.isdigit()

# 使用 filter() 过滤
new_str = filter(is_digit, str1)

# 输出结果
print(''.join(new_str))

运行结果:

abcdef

在过滤的过程中, filter() 函数会依次将序列的每一个元素传入规则函数进行判断。如果该元素符合规则,就将其缓存起来,最后返回所有符合规则的元素组成的列表。

需要注意的是, filter() 函数的返回值是一个迭代器,如果要将其转换为列表,需要使用 list() 函数进行转换。

总结一下, filter() 函数使用起来非常简单,只需要定义一个规则函数,然后使用 filter() 函数进行过滤即可。对于大规模的数据筛选, filter() 函数可以节约大量的代码和时间。让我们一起在编程中掌握这个强大的工具吧!