python3:切片神操作,你会多少?

版权声明:转载 或者复制请标注来源 https://blog.csdn.net/qq_34979346/article/details/83416679

首先先讲下 切片的公式。 模式[start : end : step]
1.start 是切片的起始位置不填默认为0
2.end 是切片的截至位置不填默认为列表的长度
3.step是切片的跨度,也就是切片跳跃的长度,官方说法是步长,如果不指定值就是默认是1
下边的代码应该会把取值的所有情况都考虑在内了,参考下边的代码

切片取值

alist=[1,2,3,4,5,6,7,8,9]
print(alist[::])    #打印全部
print(alist[:])    #打印全部
print(alist[3::2])   #起始位置为3,截至位置为默认列表长度,步长为2,
                            #打印出来我猜不错的话应该是取的奇数位置。
print(alist[1:4])  #取列表位置 1 到4 (记住列表位置是从0开始)
print(alist[::-1]) # 这个要注意了, 这个比较高级 是对列表进行反转,简单吧
print(alist[1:100])  # 如果 截至位置大于列表长度取列表的长度。
print(alist[100:])   # 如果 起始位置大于列表长度取值为空
**注意以上的操作都是会新增一个列表不会修改列表**

打印结果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 6, 8]
[2, 3, 4]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[2, 3, 4, 5, 6, 7, 8, 9]
[]

切片赋值

想要修改切片的列表就要看下边的。

alist=[1,2,3,4,5,6,7,8,9]
print(len(alist))    
print(alist[0])
alist[len(alist):]=[10]   #在尾部增加列表
alist[:0]=[0]                 #在开始位置前增加列表
alist[2:2]=[100]           #在3位置插入列表     
---------------------------------------------------------------------------------------------------------------------------
(当我们打印 print[2:2] 一定为空 ,这个大部分人可能都不大清楚我来解释下  )
alist=[1,2,3,4,5,6,7,8,9]

print(alist[3:4])
#打印的结果为 [4]  
#解释下3 是指起始位置坐标为3由于坐标开始是0,所以应该取的是[4]
#4 的意思是指起始位置到截至的长度为4 ,他是从1开始的,所以取的也是[4]
#同理我们要打印 
print(alist[3,3])
#是找不到值的 
#解释下第一个3 是指起始位置坐标为3由于坐标开始是0,所以应该取的是[4]
#第二个3 的意思是指起始位置到截至的长度为4 ,他是从1开始的,所以取的也是[3], 当打印 alist[3,3]  起始和截至不匹配所以取不到值
#但是我们可以拿这个alist[3:3]进行赋值,意思就是在起始3位置插入列表 ,就像alist[:0] 在开始位置新增值一样。
--------------------------————————————————————————————————
alist[:8]=[12]                #初始位置到7 都变成【12】
print(alist)
alist[2:]=[13]        #从第三个位置到结尾 变成【13】
--------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]

alist[::2]=[0]*5   #隔一个进行修改,
print(alist)
[0, 2, 0, 4, 0, 6, 0, 8, 0]
注意要修改的数量要和右边的等号相等 如果不等就报错 
alist=[1,2,3,4,5,6,7,8,9]

alist[::2]=[0]*4
print(alist)
#ValueError: attempt to assign sequence of size 4 to extended slice of size 5
-------------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]


alist[:3]=[] #删除前三个元素
print(alist)
del alist[:3]   #用del 删除前三个
print(alist)
-------------------------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]
del alist[::2]
print(alist)    #奇数位置都要删除
[2, 4, 6, 8]

切片的功能非常的强大,熟悉了能省略几十行代码,别不信。

猜你喜欢

转载自blog.csdn.net/qq_34979346/article/details/83416679
今日推荐