龙空技术网

#Python在学习12# 列表切片与列表复制

梁陆薇 80

前言:

眼前姐妹们对“pythonlist切片”大概比较关注,你们都需要分析一些“pythonlist切片”的相关知识。那么小编同时在网上搜集了一些关于“pythonlist切片””的相关知识,希望朋友们能喜欢,各位老铁们一起来了解一下吧!

1、列表切片

列表切片方法和字符串切片方法在逻辑上是相同的,只是针对的对象从字符串变化为列表。基本语法如下:

List[a:b],对列表中的元素,取出从a开始的,到b终止的所有元素(不包含b对应的元素)

List[:b],对列表中的元素,取出b之前的所有元素(不含b对应的元素)

List[a:],对列表中的元素,取出从a开始的所有元素

List[:],复制完整列表

List[a:b:e],对列表中的元素,取出从a开始,间隔为e抽取下一个元素,至b结束的所有元素(不包含b)

List[::-1],列表反转

代码举例:

a_list=[1,2,3]rev_list=a_list[::-1]print(rev_list)

运行之后的结果为[3, 2, 1]

2、列表切片赋值

通过列表切片,可以对目标列表内的元素实现替换,相当于在原来位置删除对应的元素,然后添加进入新的元素。

代码举例如下:

b_list=[1,2,3,4,5,6,7,8,9]b_list[2:5]=[1,1,1,1]print(b_list)b_list[0:0]=[1,1,1,1]print(b_list)

运行结果如下:

[1, 2, 1, 1, 1, 1, 6, 7, 8, 9]

[1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 6, 7, 8, 9]

这里面可以发现一个事实,切片赋值的列表元素长度是不受限制的,只要是列表格式,就可以替换插入到列表中。当在0位置赋值时,得到的运行结果是在列表的起始位置插入了对应的列表及元素。

特殊的,当输入第三个参数(即间隔插入元素时),则要求拟插入的列表和原列表的大小必须匹配。

3、列表运算符

除了列表串联与批量复制之外,还有列表的每个元素的比较(直接通过“>”“≥”“<”“≤”“!=”以及“==”等进行比较,并进行判断,结果通过True或者False等显示)

4、浅拷贝与深拷贝

对于列表中元素含有列表的列表,例如list=[a,b,[a,b]],这个列表中包含三个元素:a,b,和一个列表元素[a,b]

我们通过列表复制的方法list[:],这时表面上实现了对列表的复制,可以继续完成列表元素替换的操作。但是实际上列表内的列表元素依然是关联到原列表的。所以此时需要通过深拷贝来实现每个元素都有自己的副本,消除列表内的列表元素的影响。

import copyb_list=[1,2,3,4,5,[6,7,8],9]c_list=copy.deepcopy(b_list)print(c_list)

#加油!

#一点一滴的努力,未来都会有回报。

#岁月静好,不去羡慕旁人,只做好自己,花朵总会绽放。

#以上学习感悟来自于《高阶Python代码精进之路》([美]Brain Overland, John Bennett著,李辉,韩慧昌译,中国工信出版集团电子工业出版社2022年4月出版)

标签: #pythonlist切片 #python列表取并集 #python 切片 拷贝 #python列表切片赋值