可变条件1.找出列表中所有偶数
可变条件2.找出列表中所有奇数
可变条件3.找出列表中3的倍数
要求:自动去除重复数值并且顺序排列
l = [1,3,5,2,4,8,6,9,12,3,16]
def My_Del(lst,log:int=0)->list:
'''
创建一个函数用来删除函数中的重复元素,并且保存成一个新的按序排列的列表返回
lst :要进行筛选的列表
'''
#print("My_Del接收到list",lst) #打印检查
result = list(set(lst.copy())) #利用集合的特性删除掉重复元素,result用来存储最后结果
result.sort() #列表升序排列
#print("My_Del处理后list",result) #打印检查
return result
def Even(i:int)->bool:
'''
该函数判断传入数字是否为偶数,并将结果返回
参数i : 需要做判断的参数,必须为整数类型
'''
return i%2 == 0
def Treble(i:int)->bool:
'''
该函数判断传入数字是否为三的倍数,并将结果返回
参数i : 需要做判断的参数,必须为整数类型
'''
return i%3 == 0
def Odd(i:int)->bool:
'''
该函数判断传入数字是否为奇数,并将结果返回
参数i : 需要做判断的参数,必须为整数类型
'''
return i%2 != 0
def fn(func,lst:int = [])->list:
'''
fn()函数可以将指定列表中的所有偶数获取出来,并保存到一个新列表中返回
参数:
func :列表筛选条件
lst :要进行筛选的列表
'''
result = []
for i in lst : #遍历列表中的值
#print("i=",i) #打印检查
if func(i) : #选出符合函数要求的数值
result.append(i)
result = My_Del(result) #在函数内调用函数
return result
print(f"原列表{l}")
print("提取偶数列表",fn(Even,l))
print("提取奇数列表",fn(Odd,l))
print("提取三倍列表",fn(Treble,l))
结果:
原列表[1, 3, 5, 2, 4, 8, 6, 9, 12, 3, 16] 提取偶数列表 [2, 4, 6, 8, 12, 16] 提取奇数列表 [1, 3, 5, 9] 提取三倍列表 [3, 6, 9, 12] ***Repl Closed***总结:
高阶函数
接收函数作为参数,或者将函数作为返回值(例如递归函数)的函数是高阶函数



