python array 切片

Python Array切片

先创建一个Array

arr = []
for i in range(26):
    arr.append(chr(ord('a') + i))
print(arr)

输出

[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’]

数组创建好了
在这里插入图片描述
上述数组每个元素的索引(index)从0开始,
在这里插入图片描述

print(arr[0])
print(arr[1])
print(arr[10])
print(arr[25])

输出

a
b
k
z

从前往后的索引是从0开始,那么不知道数组长度,需要获取最后一个数,把数组压成一个环更容易记忆
在这里插入图片描述

print(arr[-1])
print(arr[-10])
print(arr[-25])
print(arr[-26])

输出

z
q
b
a

在这里插入图片描述

arr = []
for i in range(66):
    arr.append(i)
print(arr)
print(arr[0:3])
print(arr[:3])
print(arr[1:3])
print(arr[2:6])
print(arr[:10:2])
print(arr[::5])
print(arr[:])
print(arr[::])

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]
[0, 1, 2]
[0, 1, 2]
[1, 2]
[2, 3, 4, 5
[0, 2, 4, 6, 8]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]

在这里插入图片描述
输出数组的start指的是开始输出的索引,end指的是结束输出的索引(到了end就结束,输出不包括end),sep指下一个输出的索引按照start+sep规则来输出。
输出数组和for循环还挺相似的,(。・∀・)ノ゙,就是i++(i=i+1)部分改成index=index+sep。

for(int i=0; i<10; i++):
    cout<<i<<endl;
for(int index = start; index < end; index = index + sep){
	cout<<arr[index];
}

跟range()方法也很类似

range(0, 10, 1)
range(0, 10)

print(arr[0:3]),输出从索引从start=0开始到end=3为止(不包括3),间隔默认为sep=1(索引每次加一个)。所以输出索引为0,1,2的数,arr[0], arr[1], arr[2]。

for(int i = 0; i < 3; i++){
	cout<<arr[i];
}

print(arr[:3]),冒号前面没有数字,默认从索引0开始。
print(arr[0:]),冒号后面没有数字,默认从到数组长度为止,不包括数组长度。

for(int i = 0; i < arr.Length; i++){
	cout<<arr[i];
}

print(arr[::]),输出从0开始,到数组长度为止,默认间隔为1。
print(arr[2:6]),

for(int i = 2; i < 6; i++){
	cout<<arr[i];
}

print(arr[:10:2])

for(int i = 0; i < 10; i=i+2){
	cout<<arr[i];
}

二位数组的切片
参考自:
在这里插入图片描述

https://www.zhihu.com/education/video-course/1647604835598092705?section_id=1647604838408508598

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值