038.列表。排序。revered逆序。max。min。sum
列表排序
修改原列表,不建新列表
1、升序排列
>>> a=[10,30,20,40,50,0,80,55] >>> id(a) 47161752 >>> a.sort()#默认升序排列 >>> a [0, 10, 20, 30, 40, 50, 55, 80] >>> id(a) 47161752
2、降序排列
>>> a=[10,30,20,40,50,0,80,55] >>> a.sort(reverse=True)#降序排列 >>> a [80, 55, 50, 40, 30, 20, 10, 0]
3、随机排序
需要导入随机模块。
>>> import random #引入随机模块 >>> random.shuffle(a) #随机打乱顺序,可以用做洗牌 >>> a [10, 30, 40, 50, 80, 20, 55, 0] >>> random.shuffle(a) #打乱顺序 >>> a
创建新列表的排序
可以通过内置函数sorted()进行排序,会生成新的列表对象,对原有列表不做修改。
>>> a=[10,30,20,40,50,0,80,55] >>> id(a) 19855120 >>> a=sorted(a)#默认升序排列 >>> a [0, 10, 20, 30, 40, 50, 55, 80] >>> id(a) 19854600 >>> c=sorted(a,reverse=True)#加反转,变降序 >>> c [80, 55, 50, 40, 30, 20, 10, 0]
reversed()返回迭代器
内置函数reversed()也支持逆序排列,不对原列表做修改,返回逆序排列的迭代器。
迭代器是一个指针,从屁股后面往前指。
>>> a=[10,30,20,40,50,0,80,55] >>> c=reversed(a)#c是迭代器 >>> c <list_reverseiterator object at 0x02CEAE10> >>> list(c)#用list函数转成列表 [55, 80, 0, 50, 40, 20, 30, 10] >>> list(c)#迭代器只能用一次 []
列表相关其他内置函数汇总
max和min
用于返回最大值和最小值。
>>> a=[10,30,20,40,50,0,80,55] >>> max(a) 80 >>> min(a) 0 >>> a
sum求和
对数值型列表所有元素进行求和,对非数值型列表运算会报错。
>>> a=[10,30,20,40,50,0,80,55] >>> sum(a) 285 >>> b=['a','c','f'] >>> sum(b)#非数值型列表会报错 Traceback (most recent call last): File "<pyshell#123>", line 1, in <module> sum(b)#非数值型列表会报错 TypeError: unsupported operand type(s) for +: 'int' and 'str'