python filter函数的使用用法

  • Post category:Python

下面是Python filter函数的使用攻略。

1. filter函数是什么?

filter函数是Python的内置函数之一,它用于对可迭代对象(如列表、元组、字典等)中的元素进行筛选,返回符合条件的元素组成的迭代器。它的语法结构如下:

filter(function, iterable)

其中,function 是一个用于筛选的函数,接收 iterable 中的一个元素作为参数,返回 True 或 False 。iterable 是需要进行筛选的可迭代对象。filter函数会遍历 iterable 中的所有元素,对每一个元素调用 function 并根据其返回值(True或False)来决定是否保留该元素。

2. filter函数的常见使用方法

2.1 过滤列表中的偶数和奇数

下面是一个简单的例子,使用 filter 函数来过滤一个列表中的偶数和奇数。假设我们有下面这样一个列表:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

现在,我们想要将这个列表中的奇数和偶数分别存储到两个新的列表中。我们可以定义两个函数来实现这个目标:

# 筛选偶数
def is_even(num):
    return num % 2 == 0

# 筛选奇数
def is_odd(num):
    return num % 2 != 0

然后,我们可以使用 filter 函数来过滤列表中的偶数和奇数:

# 筛选偶数
even_lst = list(filter(is_even, lst))
print("偶数列表:", even_lst)

# 筛选奇数
odd_lst = list(filter(is_odd, lst))
print("奇数列表:", odd_lst)

输出结果如下:

偶数列表: [2, 4, 6, 8, 10]
奇数列表: [1, 3, 5, 7, 9]

2.2 过滤列表中的非空字符串

下面再来看一个例子,简单介绍 filter 函数的另一种应用。

lst = ["hello", "", "world", "", "python", "is", "cool", ""]

现在,我们想要从这个列表中筛选出所有非空字符串。我们可以定义一个筛选函数 not_empty 来实现这个目标:

def not_empty(s):
    return s and s.strip()  # 如果字符串非空返回True,否则返回False。

然后,我们可以使用 filter 函数来过滤非空字符串:

filtered_lst = list(filter(not_empty, lst))
print(filtered_lst)

输出结果如下:

['hello', 'world', 'python', 'is', 'cool']

3. 总结

总的来说,filter 函数是一个十分有用的 Python 内置函数。它能够对可迭代对象进行筛选,返回符合条件的元素组成的迭代器。在开发 Python 应用时,filter 函数经常用于给列表或元组进行数据筛选,以剔除或保留符合指定条件的数据。