其他分享
首页 > 其他分享> > sum、map、lambda 函数

sum、map、lambda 函数

作者:互联网

sum() 函数

>>> sum([2,4,6,8])
20
>>> sum([2,4,6,8],2)
22

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可以处理这种数据类型。

# 将 字符串str 类型转为 列表list
>>> str1='12345'
>>> result=map(int,str1)
print(list(result))
[1, 2, 3, 4, 5]

lambda() 函数

lambda表达式时python中一类特殊定义的函数形式,使用它可以定义一个匿名函数,当你需要一个函数但又不想单独命名和定义它的时候,使用lambda就会非常方便。
lambda函数可以包含任意多的参数,但是函数体部分只能包含一个表达式。此外,lambda函数用一行代码写成,并且被立即调用。

#普通函数
>>> 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