列表索引取值一次只能取一个数据,而列表索引取值则可以在指定的范围内生成一个子列表。根据切片使用的参数,从原列表中取出一定数量的元素形成一个新的列表,该列表可能是空值,也可能是原列表的副本。
切片取值语法如下表所示:
参数是简称顾头不顾尾
语法 | 生成新列表 |
---|---|
list[beg:end] | 取出索引在beg和end(不包含)之间的所有列表元素 |
list[:end] | 取出索引在end(不包含)之前的所有列表元素 |
list[beg:] | 取出索引在beg之后的所有列表元素 |
list[:] | 取出索引所有列表元素,该操作讲整个列表的元素逐个复制,即为浅拷贝 |
list[beg:end:step] | 取出索引在beg和end(不包含)之间的范围内,按照步长step取出列表元素。使用此语法时,可以忽略三个参数中的任意一个值,参数被省略时,使用默认值,step的默认值是1 |
1.语法一:list[beg:end]
num_list=[100,200,300,400,500]
print(num_list[1:4])
输出:
[200, 300, 400]
2.语法二:list[:end]
num_list=[1,2,3,4,5,6]
print(num_list[:3])
输出:
[1,2, 3]
3.语法三:list[beg:]
num_list=[1,2,3,4,5,6]
print(num_list[1:])
输出:
[2,3,4,5,6]
4.语法四:list[:]
num_list=[1,2,3,4,5,6]
print(num_list[:])
输出:
[1,2,3,4,5,6]
5.语法五:list[beg?step]
num_list=[1,2,3,4,5,6,7,8,9,10]
print(num_list[0:5:2])
输出:
[1,3,5]
上面的实例全部是正索引,其实切片也可以使用负索引来使用。并且正负索引可以混合使用:
num_list=[1,2,3,4,5,6,7]
print(num_list[:-2]
#[1,2,3,4,5]
print(num_list[-4:6])
#[4,5,6]
如果切片不在列表范围内将会返回一个空列表
num_list=[1,2,3,4,5,6,7]
print(num_list[10:])
#输出[]
6.反转列表:list[::-1]
step参数可以正数,也可以是负数,但是不能为0,如果为负数,其它参数的默认值将会发生如下变化:
- beg的默认值为列表中的最后一个元素(即索引为-1)
- end的默认值为列表中的第一个元素(即索引为0)
因此,切片表达式[::-1]会反转原始列表
num_list=[1,2,3,4,5,6,7]
print(num_list[::-1])
输出:
[7, 6, 5, 4, 3, 2, 1]
7.切片添加修改列表
用列表切片添加修改赋的新值也必须是列表。
指定在0位置插入元素,效果是在该位置插入不会删除任何元素:
num_list=[1,2,3,4,5,6,7]
#在开头添加插入列表
num_list[0:0]=[100,900]
print(num_list)#[100, 900, 1, 2, 3, 4, 5, 6, 7]
用新元素来替换指定范围内的元素,如下面是把索引1到3的元素删除,并插入新的元素值[100,900]:
num_list1=[1,2,3,4,5,6,7]
num_list1[1:4]=[100,900]
print(num_list1)
#[1, 100, 900, 5, 6, 7]
版权声明:本文为px551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。