首页 - 技术 - 关于reduce和地图

关于reduce和地图

2023-10-01 10:49
-->

一 reduce()函数是Python模块的内容,是关于疲劳程度的计算

  调用时先导入reduce模块

  reduce()接收两个参数,reduce(function,sequence)

  reduce() 对序列(sequence)中的每个元素重复调用函数并返回最终结果

从 functools 导入 reduce def func(a,b):
返回a+b
ret = reduce(func,[1,2,3,4,5])
打印(转)

ret = reduce(lambda x ,y:x+y,[1,2,3,4,5])
打印(转回) s = sum([1,2,3,4,5])
打印(s) # 结果是15

  上面的计算实际上是列表所有元素的总和,虽然python有内置求和函数sum,

  但是使用reduce()也很简单

  reduce()也可以接受第三个参数作为计算的初始值。如果初始值设置为100,则计算为:

从 functools 导入 reduce def func(a,b):
返回a+b ret = reduce(func,[1,2,3,4,5],100)
打印(转回) # 结果是115

2 map()函数是python内置的高阶函数,map(func,iter1)

  它接收一个函数func和一个列表,并将函数func依次应用于列表的每个元素

  获取新列表并返回

  例如:对于列表[1,2,3,4,5,6,7,8,9]

  如果你想对列表中的每个元素进行平方,可以使用函数map()

  因此,我们只需要传入函数f(x) = x * x,然后我们就可以使用map()函数来完成这个计算

lst = [1,2,3,4,5,6,7,8,9] # 1.可以使用function方法实现 def func(x):
返回 x * x ret = 列表(map(func,lst))
打印(转回) # 2.可以使用lambda函数实现
ret = list(map(lambda x:x**2,lst))
打印(转回) #3。 for循环也可以做到
lst_new = []
对于 lst 中的 i:
lst_new.append(i *i)
打印(lst_new) # 输出结果均为:[1, 4, 9, 16, 25, 36, 49, 64, 81]

  注意:map()函数不会改变原来的列表,而是返回一个新的列表

      使用map()函数,您可以将一个列表转换为另一个列表。只需要传入转换函数

由于list中包含的元素可以是任意类型,map()不仅仅可以处理只包含数值的列表

其实它可以处理包含任何类型的列表,只要传入的func可以处理该类型的数据即可

-->