列表目录1. 列表的创建与元素1.1 中括号1.2 range()1.3 List()生成2. 列表的索引2.1 访问2.1.1 长度`(len)`元素个数2.1.2 list in list2.1.3 `IndexError`2.2 元素计数`list.count(obj)`2.3 反查索引2.4 求和,平均值、最大(小)值2.4.1 求和 sum2.4.2 平均值(mean)2.4.3 最大值(max)2.4.4 最小值(min)
1. 列表的创建与元素
列表(List)就如同一个数据收纳盒,可以收纳数字、字符串、符号、列表、元组等等内容,收纳的事物都是作为列表的元素。
列表因为其易操作、多变,在很多地方用处都是很大的。
列表是可变类型。
1.1 中括号
列表是由中括号把元素括起来得到的结果
>>> list=[2,3,'Max','2','~!',[1,2,'3'],(3,2)]>>> list#包含数字,包含字符串,包含列表,包含(3,2)这样的坐标元组
[2, 3, 'Max', '2', '~!', [1, 2, '3'], (3, 2)]>>> Names=['Max','Kiki',"Melinda"]>>> Names
['Max', 'Kiki', 'Melinda']
1.2 range()
range()是一个生成连续自然数的函数。
在python2.x中会直接生成列表:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
在Python 3.x中只是返回本身
>>> range(10)
range(0, 10)
在python 3.x中用range()生成列表,只需要使用list()函数即可。
1.3 List()生成
list(range(n))默认是从0开始,到n-1结束,最后不到n,左闭右开(共n个数)
>>> list(range(10)) #默认是从0开始,最后不到10.左闭右开
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(1,n))从1开始,到n-1结束,最后不到n,左闭右开(共n-1个数)
>>> list(range(1,10)) #指定从1开始,到9结束,取不到10,左闭右开。
[1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(m, n, i)从m开始,到n-1结束,但是有一个步长参数i,每i个选取
#从3开始,每两个取一个数,生成的是奇数列表
>>> list(range(3,30,2))
[3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]#从2开始,每两个取一个数,生成的是偶数列表
>>> list(range(2,30,2))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]>>> list((2,34,5,2,5)) #可以把括号括起来的一组数转化为列表
[2, 34, 5, 2, 5] #实际为元组转化列表
#如果加上步长,又不提供开始位置的参数,则返回的为空
>>> list(range(40,3))
[]#生成3的倍数的列表
>>> list(range(0,40,3))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39]#生成整百列表
>>> list(range(0,1001,100))
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
列表可以通过str变成字符串
>>> str([1,2,3])
'[1, 2, 3]'
>>> str(['asd','12',1,2])
"['asd', '12', 1, 2]"
2. 列表的索引
列表的元素的访问和字符串的访问是一样的,使用对象加中括号list [ ]的形式。索引从0开始,索引值不能超过元素的个数-1。
2.1 访问
2.1.1 长度(len)元素个数
首先要清楚列表元素个数用len(list)。
>>> Apple=['Mac','Macbook','iphone','iwatch','ipad','ipod']>>> len(Apple) #Apple列表的元素个数
6
>>> list(range(2,30,2))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]>>> len(list(range(2,30,2))) #偶数个数
14
>>> Apple=['Mac','Macbook','iphone','iwatch','ipad','ipod']>>> Apple[0] #取索引为0的第一个元素
'Mac'
>>> Apple[4]#取索引为4的第五个元素
'ipad'
>>> Apple[2:5]#取索引2到4的元素,即第三个到第五个元素,不能取到索引为5的元素,左闭右开
['iphone', 'iwatch', 'ipad']>>> Apple[:]#取全部元素,即整个列表
['Mac', 'Macbook', 'iphone', 'iwatch', 'ipad', 'ipod']>>> Apple[:4]#取前四个元素
['Mac', 'Macbook', 'iphone', 'iwatch']>>> Apple[-4:-1]#取倒数第四个到倒数第二个元素,取不到最后一个。
['iphone', 'iwatch', 'ipad']
2.1.2 list in list
如果列表中的元素包含列表,则索引需要使用两个[ ],以此类推。
>>> list=[[1,2,3],['Max',4,'Kiki']]>>> list[0][1] #列表元素的第一个列表的第二个元素
2
>>> list[1][2] #列表元素的第二个列表的第三个元素
'Kiki'
>>> list[1][0] #列表元素的第二个列表的第一个元素
'Max'
2.1.3 IndexError
当索引直接是len(list),会出现indexError,超出范围。
>>> Apple[len(Apple)]Traceback (most recent call last):
File "", line 1, in
Apple[len(Apple)]IndexError: list index out of range
#索引值为长度减-,则取得是最后一个元素。
>>> Apple[len(Apple)-1]'ipod'
#自行领悟下面两个
>>> Apple[len(Apple)-1]==Apple[-1]True
>>> Apple[len(Apple)-2]==Apple[-2]True
2.2 元素计数list.count(obj)
查看列表中元素出现的次数。
>>> list=[1,2,2,2,2,3,4,5,5,5,5,5,5,5,5,5,5,]>>> list.count(1) #1个1
1
>>> list.count(2) #4个2
4
>>> list.count(5) #10个5
10
>>> names=['Max','Max','Max','Kiki','Kiki','Melinda']>>> names.count('Max') #3个Max
3
>>> names.count('Kiki') #2个Kiki
2
2.3 反查索引
list.index(obj)是查找元素所在的索引值。
>>> Apple.index('Macbook')
1
>>> Apple.index('ipad')
4
如果有相同的元素,则返回第一个元素的索引值。
>>> names=['Max','Max','Max','Kiki','Kiki','Melinda']>>> names.index('Max')
0
>>> names.index('Kiki')
3
2.4 求和,平均值、最大(小)值
2.4.1 求和 sum
code为sum( list )
>>> sum(list(range(1,20))) #1-19的和
190
>>> sum(list(range(2,30,2))) #2-30的偶数和
210
>>> sum(list(range(1,101))) #1-100的和
5050
2.4.2 平均值(mean)
求平均值sum(list) / len(list),如果要计算加权平均数可以使用后面讲的for循环或者可以使用numpy模块。
>>> sum(list(range(1,101)))/len(list(range(1,101)))
50.5
>>> a=[1,3,3,5,6,2,6,24,67,84]>>> sum(a)/len(a)
20.1
2.4.3 最大值(max)
求最大值max(list)
>>> max([1,23,533,645,73567])
73567
2.4.4 最小值(min)
求最小值min(list)
>>> min([1,23,533,645,73567])
1
作者:Maxwang888