列表:列表是一个由多个值在一起构成的序列,“列表值”是一个值,只不过它本身里面包括很多值。列表英文名字叫list。
语法:[value1,value2,value3]
示例:
>>> [1,2,3] [1, 2, 3] >>> ['wo','ai','ni','baobao'] ['wo', 'ai', 'ni', 'baobao'] >>> ['wo','12','sui',False,172.6] ['wo', '12', 'sui', False, 172.6] >>> pam=['wo','12','sui',False,172.6] >>> print(pam) ['wo', '12', 'sui', False, 172.6] >>> type(pam) <class 'list'> >>> konglist=[] >>> print(konglist) [] >>> type(konglist) <class 'list'>
说明:列表的标志就是有一对方括号--[];列表中的值不限制类型,不限制个数;如果列表里面一个值都没有--[],那就称这个列表是一个空列表。
====获取与查找篇====
使用 列表名 [下标] 获取列表中的单个值:
示例:
>>> mylis=['wo','ai',123] >>> print(mylis[2]) 123 >>> print(mylis[1]) ai >>> print(mylis[3]) Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
说明:最后一行告诉我们使用下标取值一定要保证下标不超出列表索引的最大边界。
使用len()函数取得列表长度,保证使用下标取值时,不超出索引边界:
示例:
>>> length=len(mylis) >>> print(length) 3 >>> print(mylis[length-1]) 123
说明:使用len()函数获取列表长度后,那么列表最后一个元素的下标就是len-1
使用In和not in 判断给定的一个数值是否在列表中:
示例:
>>> mylis ['wo', 'ai', 'ni'] >>> 'baba' in mylis False >>> 'baba' not in mylis True >>> 'ni' in mylis True
使用index()方法判断列表中的某个值,在列表中哪个位置:
示例:
>>> mylis ['wo', 'ai', 'ni'] >>> mylis.index('ai') 1 >>> mylis.index(12) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 12 is not in list >>> mylis.index('wo') 0
**利用切片获取一个子列表
语法:列表名[开始值:结束值]
解释:开始值和结束值都是下标,使用切片会以开始值作为起点取到结束值位置处(但是注意不包含结束值),获取到一个新的子列表。
示例:
>>> mylis ['wo', 'ai', 'ni'] >>> mylis[1:2] ['ai'] >>> lis=[1,12,4,22,5,8,0,'li'] >>> lis [1, 12, 4, 22, 5, 8, 0, 'li'] >>> child_lis=lis[0:4] >>> child_lis [1, 12, 4, 22] >>> lis[:2] [1, 12] >>> lis[2:] [4, 22, 5, 8, 0, 'li'] >>> lis[:] [1, 12, 4, 22, 5, 8, 0, 'li']
说明:快速切片的操作有--省略起始值或者省略结束值或者直接写一个冒号。这个自己实战中体会。
将列表用于循环
示例:
>>> newlis=[0,1,2,3,4] >>> newlis [0, 1, 2, 3, 4] >>> for item in newlis: ... print(item) ... 0 1 2 3 4 >>> for x in range(5): ... print(x) ... 0 1 2 3 4
说明:之前我说过range()生成的是一个可迭代的东西,所以才能应用于for in上面;今天我们看到了列表也可以被 for in遍历。以后还会遇见更多,慢慢记下来。
====修改列表篇====
使用下标获取到某个元素后,再进行赋值操作:
示例:
>>> mylis[2]='ni' >>> print(mylis[2]) ni >>> mylis ['wo', 'ai', 'ni']
多重赋值技巧:
解释:可以在一行代码中,使用列表中的值给多个变量赋值。
>>> namelis=['aonier','kobe','lele','michael'] >>> namelis ['aonier', 'kobe', 'lele', 'michael'] >>> aohuang,kebi,girl,boy=namelis >>> aohuang 'aonier' >>> girl 'lele'
使用加号实现列表连接操作:
示例:
>>> lis [1, 12, 4, 22, 5, 8, 0, 'li'] >>> mylis ['wo', 'ai', 'ni'] >>> lis+mylis [1, 12, 4, 22, 5, 8, 0, 'li', 'wo', 'ai', 'ni']
使用星号(*)跟上数字,实现列表的复制:
示例:
>>> mylis ['wo', 'ai', 'ni'] >>> mylis*3 ['wo', 'ai', 'ni', 'wo', 'ai', 'ni', 'wo', 'ai', 'ni']
说明:是不是很像我们在介绍乘法运算符的时候,让 字符串*数字实现的效果?自己品。
使用del语句从列表中删除元素
示例:
>>> mylis ['wo', 'ai', 'ni'] >>> del mylis[1] >>> mylis ['wo', 'ni']
====常用内置方法篇====
向列表添加值:append()向末尾追加,insert()在任意位置添加值
示例:
>>> namelis ['aonier', 'kobe', 'lele', 'michael'] >>> namelis.append('12','beibei') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: append() takes exactly one argument (2 given) >>> namelis.append('xiaopeng') >>> namelis ['aonier', 'kobe', 'lele', 'michael', 'xiaopeng'] >>> namelis.insert(2,'wozaileleqianmian') >>> namelis ['aonier', 'kobe', 'wozaileleqianmian', 'lele', 'michael', 'xiaopeng']
说明:从上面示例可以看出append()方法里只能接收一个参数;append()和insert()方法返回值都是None
使用remove()方法移除列表中的元素
示例:
>>> namelis ['aonier', 'kobe', 'wozaileleqianmian', 'lele', 'michael', 'xiaopeng'] >>> namelis.remove('wozaileleqianmian') >>> namelis ['aonier', 'kobe', 'lele', 'michael', 'xiaopeng']
使用sort()排序
示例:
>>> nlis [1, 12, 3, 22, 33, 7] >>> print(nlis) [1, 12, 3, 22, 33, 7] >>> nlis.sort() >>> nlis [1, 3, 7, 12, 22, 33]
默认是升序排列,可以通过传入参数,reverse=True,让列表降序排列。
>>> nlis [1, 3, 7, 12, 22, 33] >>> nlis.sort(reverse=True) >>> nlis [33, 22, 12, 7, 3, 1]