1.基本知识
列表是由一系列按特定顺序排列的元素组成。(列表是有序的!)
可以将任何数据加入列表中,元素之间可以有关系,也可以没有任何关系。
[]表示列表,中间用,隔开
列表可以正序输入也可以逆序输入
2.有关列表的一些相关操作
2.1 L.append('var') #追加元素var
2.2 L.insert(2,'index') #在2之后插入元素index
2.3 L.remove('var') #删除第一次出现的该元素
2.4 L.pop() #返回最后一个元素,并从list中删除之
2.5 L.count(1) #该元素在列表中出现的个数
2.6 L.index(1) #该元素的位置,无则抛异常
2.7 L.extend(list) #追加list,即合并list到L上
2.8 L.sort() #排序
2.9 L.reverse() #倒序,并不会进行排序
3.列表的操作符 : * + del
4.列表的切片操作
切片适用于列表、元组、字符串、range对象等序列类型,但作用于列表时功能最强大。
切片可以截取列表中的任何部分,得到一个新列表,也可通过切片来增加、修改和删除列表的元素。
切片的基本形式:list_name[数字1:数字2:数字3]
数字1:切片开始位置(默认为0)
数字2:切片截止(但不包含)位置(默认为列表长度)。
数字3:切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。
列表切片操作举例:
>>> aList = list(range(3, 18, 2))
>>> aList[::] #返回包含所有元素的新列表
[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
>>> aList[::-1] #逆序的所有元素
[17, 15, 13, 11, 9, 7, 6, 5, 4, 3]
>>> aList[::2] #偶数位置,隔一个取一个
[3, 5, 7, 11, 15]
>>> aList[1::2] #奇数位置,隔一个取一个
[4, 6, 9, 13, 17]
>>> aList[3::] #从下标3开始的所有元素
[6, 7, 9, 11, 13, 15, 17]
>>> aList[3:6] #下标在[3, 6)之间的所有元素
[6, 7, 9]
>>> aList[0:100:1]#前100个元素,自动截断
[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
>>> aList[100:] #下标100之后的所有元素,自动截断
[ ]
>>> aList[100] #直接使用下标访问会发生越界
IndexError: list index out of range
>>> aList = [3, 5, 7]
>>> aList[len(aList):] = [9] #在尾部追加元素
>>> aList
[3, 5, 7, 9]
>>> aList[:3] = [1, 2, 3] #替换前3个元素
>>> aList
[1, 2, 3, 9]
>>> aList[:3] = [] #删除前3个元素
>>> aList
[9]
>>> aList = list(range(10))
>>> aList
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> aList[::2] = [0]*5 #替换偶数位置上的元素
>>> aList
[0, 1, 0, 3, 0, 5, 0, 7, 0, 9]
>>> aList[::2] = [0]*3 #切片不连续,两侧元素个数必须一样多 报错!
>>> aList = [3,5,7,9,11]
>>> del aList [ : 3] #删除前3个元素
>>> aList
[9, 11]
>>> aList = [3,5,7,9,11]
>>> del aList [: : 2] #删除偶数位置上的元素
>>> aList
[5, 9]
注意:
已知alst=list(range(10))
则alst[:-2]= ?
[0,1,2,3,4,5,6,7]
alst[-1:-5]= ?
[ ]
alst[-5:-1]= ?
[5, 6, 7, 8]