filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表(迭代器)。
filter(function, iterable)
function – 函数
iterable – 可迭代对象
将可迭代对象的每个元素作为参数传递给函数,根据函数的返回值(True 或 False)进行判断,将返回 True 的元素放到新列表(迭代器)中。
先设计判断函数:
def is_int(putin: Union[int, str]):
""" 判断输入数据是否为int类型 """
return isinstance(putin, int)
再将判断函数作为参数传递给过滤函数:
test_list = ["A", 3, "B", 1, 3] print(list(filter(is_int, test_list)))
执行结果:
[3, 1, 3]匿名函数
匿名函数,顾名思义, 无函数名的函数
python 支持使用 lambda 表达式来创建匿名函数
对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,lambda 可以不需要专门定义一个函数然后再写调用,用于简化代码
以下内容可以实现与上面判断函数相似的功能:
(lambda putin: isinstance(putin, int))(需要判断的元素)
实际使用:
test_list = ["A", 3, "B", 1, 3]
for item in test_list:
print(f"{item} 是 int 型数据? ---> {(lambda putin: isinstance(putin, int))(item)}")
执行结果:
A 是 int 型数据? ---> False 3 是 int 型数据? ---> True B 是 int 型数据? ---> False 1 是 int 型数据? ---> True 3 是 int 型数据? ---> True排序
sorted() 函数对所有可迭代的对象进行排序操作
sorted(iterable, key=None, reverse=False)
iterable – 可迭代对象
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数取自于可迭代对象,指定可迭代对象中的一个元素来进行排序
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)
实际使用:
sorted_list = [2, 1, 7, 3, 4] print(sorted(sorted_list, key=None, reverse=False))
执行结果:
[1, 2, 3, 4, 7]综合使用
test_list = ["A", 3, "B", 1, 3] print(sorted(filter(lambda putin: isinstance(putin, int), test_list), key=lambda x: x)) # key=lambda x: x 表示按 x 本身
执行结果:
[1, 3, 3]完整代码
# -*- coding: utf-8 -*-
from typing import Union
def is_int(putin: Union[int, str]):
""" 判断输入数据是否为int类型 """
return isinstance(putin, int)
"""
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表(迭代器)。
filter(function, iterable)
function -- 函数
iterable -- 可迭代对象
将可迭代对象的每个元素作为参数传递给函数,根据函数的返回值(True 或 False)进行判断,将返回 True 的元素放到新列表(迭代器)中。
"""
test_list = ["A", 3, "B", 1, 3]
print("filter()测试:")
print(list(filter(is_int, test_list)))
"""
python 使用 lambda 表达式来创建匿名函数(顾名思义, 无函数名的函数)
对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,lambda 可以不需要专门定义一个函数然后再写调用,用于简化代码
"""
print("rnlambda测试:")
for item in test_list:
print(f"{item} 是 int 型数据? ---> {(lambda putin: isinstance(putin, int))(item)}")
"""
sorted() 函数对所有可迭代的对象进行排序操作
sorted(iterable, key=None, reverse=False)
iterable -- 可迭代对象
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数取自于可迭代对象,指定可迭代对象中的一个元素来进行排序
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
"""
sorted_list = [2, 1, 7, 3, 4]
print("rnsorted():")
print(sorted(sorted_list, key=None, reverse=False))
"""
综合使用
"""
print("rn综合测试:")
print(sorted(filter(lambda putin: isinstance(putin, int), test_list), key=lambda x: x)) # key=lambda x: x 表示按 x 本身
执行结果:
filter()测试: [3, 1, 3] lambda测试: A 是 int 型数据? ---> False 3 是 int 型数据? ---> True B 是 int 型数据? ---> False 1 是 int 型数据? ---> True 3 是 int 型数据? ---> True sorted(): [1, 2, 3, 4, 7] 综合测试: [1, 3, 3]



