前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解Python的max、min和sum函数用法

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

作者头像
Python小屋屋主
发布2018-04-16 15:22:33
2.8K0
发布2018-04-16 15:22:33
举报
文章被收录于专栏:Python小屋Python小屋Python小屋

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档