python求和函数详解_详解Python的max、min和sum函数用法

max()、min()、sum()这三个内置函数分别用于计算列表、元组或其他可迭代对象中所有元素最大值、最小值以及所有元素之和,sum()只支持数值型元素的序列或可迭代对象,max()和min()则要求序列或可迭代对象中的元素之间可比较大小。下面的代码首先使用列表推导式生成包含10个随机数的列表,然后分别计算该列表的最大值、最小值和所有元素之和。

>>> from random import randint

>>> a = [randint(1,100) for i in range(10)] #包含10个[1,100]之间随机数的列表

>>> print(max(a), min(a), sum(a)) #最大值、最小值、所有元素之和

很显然,如果需要计算该列表中所有元素的平均值,可以直接使用下面的方法:

>>> sum(a) / len(a)

函数max()和min()还支持default参数和key参数,其中default参数用来指定可迭代对象为空时默认返回的最大值或最小值,而key参数用来指定比较大小的依据或规则。函数sum()还支持start参数,用来控制求和的初始值。

>>> max(['2', '111']) #不指定排序规则

'2'

>>> max(['2', '111'], key=len) #返回最长的字符串

'111'

>>> print(max([], default=None)) #对空列表求最大值,返回空值None

None

>>> sum(range(1, 11)) #sum()函数的start参数默认为0

55

>>> sum(range(1, 11), 5) #指定start参数为5,等价于5+sum(range(1,11))

60

>>> sum([[1, 2], [3], [4]], []) #这个操作占用空间较大,慎用

[1, 2, 3, 4]

>>> sum(2**i for i in range(200)) #等比数列前n项的和,1+2+4+8+...+2^199

1606938044258990275541962092341162602522202993782792835301375

>>> int('1'*200, 2) #等价于上一行代码,但速度快很多

1606938044258990275541962092341162602522202993782792835301375

>>>int('1'*200, 7) #比值q为2-36之间的整数时,都可以这样做

1743639715219059529169816601969468943303198091695038943325023347339187627904043708629063769151560675048844208042091052362343863390613931864691792377889969422439576020000

>>> sum(range(101)) #101个人开会,互相握手次数

5050

>>> 101 * 100 / 2 #每个人与其他所有握手,除以2是避免重复握手

5050.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值