
python分割可迭代的对象
一个完整的切片包含两个“:”
语法格式:
object[start_index:end_index:step]
start_index :切片切割开始的位置
end_index:切片切割结束的位置,不包含end_index处的元素
step:步长,默认值为1,也可取负值(从右往左的切割)
# 1、切割单个值 >>> a = [0,1,2,3,4,5,6,7,8,9] >>> a[2] 2 >>> a[7] 7 >>> a[-2] 8
# 2、切割完整的值 >>> a[:] #从左往右 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[::] #从左往右 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[::-1] #从右往左 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 3、starr_index和end_index全为正的情况 >>> a[1:6] #从1切割到6(不包含6) step=1 [1, 2, 3, 4, 5] >>> a[1:6:-1] # step=-1 表示从右往左 start_index=1和end_index=6 表示从左往右,矛盾了,所以返回为空 [] >>> a[6:1] #step=1 表示从左往右,start_index=6和end_index=1 表示从右往左 [] >>> a[:6] #start_index=0 end_index=6 (不包含6) [0, 1, 2, 3, 4, 5] >>> a[:6:-1] #step=-1 表示从右往左 [9, 8, 7] >>> a[6:]# 从6开始切割到最后 [6, 7, 8, 9] >>> a[6::-1] [6, 5, 4, 3, 2, 1, 0]
# 4、start_index和end_index全为负 >>> a[-1:-6] # step=1 从左往右 start_index=-1和end_index=-6 从右往左 [] >>> a[-1:-6:-1] #start_index=-1和end_index=-6(不包含-6) 从右往左 step=-1 [9, 8, 7, 6, 5] >>> a[-6:-1] # step=1 从左往右 start_index=-6和end_index=-1 [4, 5, 6, 7, 8] >>> a[:-6] [0, 1, 2, 3] >>> a[:-6:-1] [9, 8, 7, 6, 5] >>> a[-6:] [4, 5, 6, 7, 8, 9] >>> a[-6::-1] [4, 3, 2, 1, 0] >>>
# 5、start_index和end_index 正负混合 >>> a[1:-6] #step=1 从左往右 start_index=1和end_index=-6 从左往右 [1, 2, 3] >>> a[1:-6:-1] [] >>> a[-1:6] [] >>> a[-1:6:-1] [9, 8, 7]
# 6、连续切片 >>> a[:8][2:5][-1:] [4] a[:8] ------ [0,1,2,3,4,5,6,7] a[:8][2:5] ------ [2,3,4] a[:8][2:5][-1:] --- --- [4]
# 7、三个参数可以是表达式 >>> a[2//2:3+2] [1, 2, 3, 4] >>> a[3//2:3+2:2*1] [1, 3]
# 8、其他对象的切片 >>> t=(1,2,3,4) >>> t (1, 2, 3, 4) >>> t[1:3] (2, 3) >>> s="ABCDEFG" >>> s[::2] 'ACEG' >>> "ABCDE"[1:3] 'BC' >>> for i in range(0,100)[4:20][5:7]: ... print(i) ... 9 10
# 练习:a=[0,1,2,3,4,5,6,7,8,9]分别取出偶数和奇数 >>> a[0::2] [0, 2, 4, 6, 8] >>> a[1::2] [1, 3, 5, 7, 9]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)