列表分片遇到的问题
2018-08-24 本文已影响0人
周周周__
最近在列表的分片过程中遇到了一些问题
在网上搜索了一些大神总结了比较难的一点也是面试过程容易出的部分
基础的分片咱不说,说点不容易理解的
a=list(i for i in range(1,11))
print(a)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a1 = a[8:3:-1]
print(a1)# [9, 8, 7, 6, 5] # 右-》左切片,step 为1,a[8]=9, a[7]=8, ... a[4]=5, 8-3=5个
a2 = a[10:0:-2]
print(a2)# [10, 8, 6, 4, 2] # 右-》左切片, 切片的时候,不存在 index 越界情况,a[10]不存在,a[9]=10, a[7]=8, a[5]=6...
#上面的10可以超出索引范围使用,下面的使用10为什么引用是分片引用是空???
a3 = a[0:10:-2] # start < end step 为负, 方向为右-》左,第一个是 a[0], a[0]的左边就再也没有值了。为空
print(a3)# []
a4 = a[::-2] # a[:]表示去所有,step 为负就放方向啦
print(a4)# [10, 8, 6, 4, 2]
a5 = a[5::-2] # 右-》左,等价 a[5:0:-2] a[5]=6, a[3]=4, a[1]=2
print(a5)# [6, 4, 2]
a6 = a[:5:-2] # 右-》左, 等价与 a[9:5:-2] a[9]=10, a[7]=8
print(a6)# [10, 8]
图片.png