python filter函数的使用用法

  • Post category:Python

下面我将为大家详细介绍Python中filter函数的使用方法。

什么是filter函数?

在Python中,filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个新的序列。可以使用 lambda 表达式或函数的形式对序列进行过滤。返回的结果为一个 filter 对象,可以使用 list() 来转换为列表。

filter函数的语法

filter(function, iterable)

参数:
1. function:用于过滤的函数,可以是lambda函数或普通函数。
2. iterable:一个序列或可迭代的对象。

filter函数的使用示例

下面将通过两个代码示例来介绍filter函数的使用。

示例一:

# 通过filter函数过滤掉列表中的奇数元素

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

# 使用 lambda 表达式过滤
new_number_list = list(filter(lambda x: x % 2 == 0, number_list))

# 使用普通函数过滤
def is_even(num):
    if num % 2 == 0:
        return True
    else:
        return False

new_number_list_2 = list(filter(is_even, number_list))

print(new_number_list) # [2, 4, 6, 8]
print(new_number_list_2) # [2, 4, 6, 8]

在此示例中,通过使用filter()函数过滤出列表number_list中的偶数元素。可以看到,这里既使用了lambda表达式,也使用了普通函数的方式对列表进行了过滤,并将结果转换为列表。

示例二:

# 通过filter函数过滤掉字典中value为假值的键值对

d = {'a': '', 'b': 'hello', 'c': None, 'd': 0}

# 使用 lambda 表达式过滤
new_dict = dict(filter(lambda x: x[1], d.items()))

# 使用普通函数过滤
def is_valid_value(item):
    key, value = item
    if value:
        return True
    else:
        return False

new_dict_2 = dict(filter(is_valid_value, d.items()))

print(new_dict) # {'b': 'hello'}
print(new_dict_2) # {'b': 'hello'}

在上面示例中,通过使用filter函数过滤掉字典中value为假值的键值对。同样地,这里既使用了lambda表达式,也使用了普通函数的方式实现了对字典的过滤,并将结果转换为字典。

到这里,介绍完了Python中filter函数的使用方法,希望对大家有所帮助。