sum、map、lambda 函数
作者:互联网
sum() 函数
- 描述
sum()函数是对可迭代对象序列进行求和的计算方法 - 语法
sum(iterable[,start])
其中iterable为可迭代的对象,比如 list,tuple或者dict等
sum函数最后的值=可迭代对象里的数相加的和+start的值,start不写的话默认为0
>>> sum([2,4,6,8])
20
>>> sum([2,4,6,8],2)
22
map() 函数
- 描述
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回给迭代器。 - 语法
map(function,iterable,...)
function -- 函数
iterable -- 一个或多个可迭代序列
返回值 -- 返回迭代器 (返回迭代器意味着print时候需要再转化为list输出)
举例
- 例1
对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果希望把list的每个元素都作平方,就可以用map()函数:
因此,我们只需要传入函数square(x)=x**2,就可以利用map()函数完成这个计算:
def square(x):
return x**2
print(list(map(square, [1, 2, 3, 4, 5, 6, 7, 8, 9])))
输出结果:
[1, 4, 9, 10, 25, 36, 49, 64, 81]
注意:map()函数不改变原有的 list,而是返回一个新的 list。
利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
- 例2
我们也可以利用map()来进行不同数据类型之间的转换,比如
把 str1='12345'转为列表类型
# 将 字符串str 类型转为 列表list
>>> str1='12345'
>>> result=map(int,str1)
print(list(result))
[1, 2, 3, 4, 5]
lambda() 函数
lambda表达式时python中一类特殊定义的函数形式,使用它可以定义一个匿名函数,当你需要一个函数但又不想单独命名和定义它的时候,使用lambda就会非常方便。
lambda函数可以包含任意多的参数,但是函数体部分只能包含一个表达式。此外,lambda函数用一行代码写成,并且被立即调用。
-
语法
lambda [arg1 [,arg2,.....argn]]:expression
关键字 lambda
参数 arg1,arg2...
函数体 expression -
例子
#普通函数
>>> def func(a,b,c):
return a+b+c
>>> print(func(1,2,3))
6
# lambda 匿名函数
>>> f = lambda a,b,c: a+b+c # 在代码:f = lambda a,b,c: a+b+c 中,lambda表示匿名函数,冒号 “:”之前的a,b,c表示它们是这个函数的参数。
>>> print(f(1,2,3)) #匿名函数不需要return来返回值,表达式本身结果就是返回值。
6
sum()、map()和lambda()函数经常配合使用,如下面例子
给一个列表 如 lst1=[1,2,3,4,5],求列表里每一个元素的平方和
# 普通函数
def square_sum(numbers):
sum=0
for i in numbers:
sum += i ** 2
return sum
print(square_sum([1,2,3,4,5]))
55
# sum lambda map配合使用
def square_sum(numbers):
return sum(map(lambda x:x**2, numbers))
print(square_sum([1,2,3,4,5]))
# 推导式写法
def square_sum(numbers):
return sum(x**2 for x in numbers)
print(square_sum([1,2,3]))
标签:map,square,函数,sum,list,lambda 来源: https://www.cnblogs.com/eirc-python-learning/p/16229056.html