列表切片中获取数据

列表索引取值一次只能取一个数据,而列表索引取值则可以在指定的范围内生成一个子列表。根据切片使用的参数,从原列表中取出一定数量的元素形成一个新的列表,该列表可能是空值,也可能是原列表的副本。
切片取值语法如下表所示:

参数是简称顾头不顾尾

语法生成新列表
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版权协议,转载请附上原文出处链接和本声明。