python列表之部分列表——切片

目录

切片

全索引

半索引

负数索引

遍历切片

复制列表


切片

全索引

我们平常可能需要使用一个列表中的子列表,也就是部分元素,这个时候我们就需要用到切片这个功能啦

要创建切片,就如同range()函数一样,需要用到元素的索引,如下列所示

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']
print(list_1[0:3])

这里打印的切片从索引0到索引3结束,并且不包括索引3,所以只打印了三个元素

['SWS', 'SSN', '慢蜗牛']

我们这里的索引可以随意定义,但是如果超过了列表的最后一个索引会怎么样,大家可以试试

但是注意!!!我们这里是不包含最后一个索引的,遇到最后一个索引就直接退出

半索引

如果我们没有指定第一个索引,python就会自动从列表开头开始

没有指定最后一个索引,python就会自动结束在列表末尾

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

print(list_1[:4])
print(list_1[1:])
['SWS', 'SSN', '慢蜗牛', '小蜗牛']
['SSN', '慢蜗牛', '小蜗牛', '小滴水']

负数索引

我们这里还可以用负数索引来返回列表末尾相应距离的切片

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

print(list_1[-4:])
['SSN', '慢蜗牛', '小蜗牛', '小滴水']

遍历切片

如果要遍历切片,我们可以使用for循环,如:

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

for sws in list_1[:4]:
    print(sws.title())

我们这里遍历切片了前四个元素

Sws
Ssn
慢蜗牛
小蜗牛

复制列表

想要复制一个列表,并且复制的列表的改变不会影响原列表,那我们应该怎么办呢,来看看这个方法可不可以

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

list_2 = list_1

list_2.append('追尾的猫')

print(list_2)
print(list_1)

我们这里创建了一个列表,并且把这个列表用赋值符'='给了第二个列表

然后用append()函数来改变第二个列表的值,来看看两个列表是否同时改变

['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水', '追尾的猫']
['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水', '追尾的猫']

结果跟我们想要的大相径庭呀

其实对于列表来说,用'='来操作就相当于让两个指针同时指向了一个对象

当其中一个指针改变这个对象时,因为指向的是同一个对象,所以另一个指针的对象也会改变

那么我们应该怎么来复制一个列表呢,别忘了我们前面讲过的切片呀

list_1 = ['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

list_2 = list_1[:]

list_2.append('追尾的猫')

print(list_2)
print(list_1)
['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水', '追尾的猫']
['SWS', 'SSN', '慢蜗牛', '小蜗牛', '小滴水']

 

posted @ 2022-08-28 23:19  放氮气的蜗牛  阅读(56)  评论(0编辑  收藏  举报  来源