ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sum、map、lambda 函数

2022-05-08 12:00:07  阅读:230  来源: 互联网

标签:map square 函数 sum list 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有