问题:区分列表切片中起始值和步长值正负对切片的影响
#列表切片操作
list1 = list(range(10))
print('list1:', list1)
#截取部分
list2 = list1[2: 5]
print('list2:', list2)
list3 = list1[: 3]
print('list3:', list3)
list4 = list1[-3:]
print('list3:', list4)
list5 = list1[-5: -1]
print('list5:', list5)
#加入步长[start: stop: step],分别为起始下标,终止下标,步长(默认为1)
#step正负
#step>0,从左往右切片,要求start
list6 = list1[1: 8: 2]
print('list6:', list6)
#step<0,从右往左切片,要求start>stop,从start开始
list7 = list1[8: 1: -2]
print('list7:', list7)
#start/stop值为负数,代表从左往右的倒数第几个元素
#确保切片区间有值,否则为空表
list8 = list1[-3: -8:-1]
print('list8:', list8)
list9 = list1[-3: 3: -1]
print('list9:', list9)
list10 = list1[3: -3: 2]
print('list10:', list10)
list11 = list1[: : -1]
print('list11:', list11)
总结:
(1)step正负只决定切片方向,正为从左往右,负为从右往左
(2)start/stop值为负代表从左往右倒数几个元素
(3)切片始终以start为开始,stop结束,确保切片[start: stop]区间有值,否则为空表