8、python-常用的3个高阶函数

2023-12-29 15:57:29

一.map

1.第一个参数 function 以参数序列中的每一个元素调用 function 函数
2.返回包含每次 function 函数返回值的新列表

def square(x):
    return x * x

y = map(square, [1, 2, 3, 4])
z = map(str, [1, 2, 3, 4])
a = map(int, ['1', '2', '3', '4'])
print(list(y))
print(list(z))
print(list(a))

# [1, 4, 9, 16]
# ['1', '2', '3', '4']
# [1, 2, 3, 4]

二.reduce

1.对参数序列中元素进行累积
2.语法:reduce(function, iterable[, initializer])

  • function – 函数,有两个参数
  • iterable – 可迭代对象
  • initializer – 可选,初始参数
from functools import reduce


# 两数相加
def add(x, y):
    return x + y


# 计算列表和:1+2+3+4+5
sum1 = reduce(add, [1, 2, 3, 4, 5])
# 使用 lambda 匿名函数
sum2 = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(sum1)
print(sum2)

# 15
# 15

三.filter

1.对每个元素进?判断,返回 True或 False
2.filter()根据判断结果?动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

# TODO 过滤能被2整除的数
even_num = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6]))
# TODO 过滤不能被2整除的数
odd_num = list(filter(lambda x: x % 2, [1, 2, 3, 4, 5, 6]))
# # TODO 过滤26个字母排在g之前的
res = list(filter(lambda x: x < 'g', 'hijack'))
print(even_num)
print(odd_num)
print(res)

# [2, 4, 6]
# [1, 3, 5]
# ['a', 'c']

文章来源:https://blog.csdn.net/qq_36076898/article/details/135288242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。