- index用于枚举list中的元素
- slice用于枚举list中元素集合
index语法:如有一个list a,a[i]表示a中第i个元素(a[0]表示第一个元素),当i<0时,表示倒数第几个元素(a[-1]表示倒数第一个元素)
slice语法:的基本形式为a[start : end : step],这三个参数都有默认的缺省值,但是为了与index区别,slice语法中至少要有一个
:
,step的默认值为1,若step > 0表示从前向后枚举,step < 0则相反,step不能为0;a=[1,2,3,4,5,6,7]a[0:2]表示取出1和2,不包括a[2]也就是3这个数
a[0:-1]==[1,2,3,4,5,6] a[3:-2]==[4,5]
也可以用slice()构造出片,然后作用于list a
n = slice(1,8,2)
a=[1,2,3,4,5,6,'a','b','c']
print(n.start)
print(n.stop)
print(n.step)
print(a[n])#a[n]==a[1:8:2]
1
8
2
[2, 4, 6, 'b']
slice assignment语法:a[start : end : step] = b与b = a[start : end : step]不同,后者是在list a中取出一些元素,然后重新组成一个新的list给b,不会改变list a的值;而前者直接改变a的值。其主要用法有:
- 插入
>>> a = [1, 2, 3]
>>> a[0:0] = [-3, -2, -1, 0]
>>> a
[-3, -2, -1, 0, 1, 2, 3]
- 删除
>>> a
[-3, -2, -1, 0, 1, 2, 3]
>>> a[2:4] = []
>>> a
[-3, -2, 1, 2, 3]
- 替换
>>> a
[-3, -2, 1, 2, 3]
>>> a[:] = [1, 2, 3]
>>> a
[1, 2, 3]