字符串切片主要受步长值的影响,所以本文重点介绍了步长值对字符串切片的变化。
字符串切片的步长值默认是正数1.
一)步长值为正数:
1、start为空默认为负无穷,end为空默认为正无穷。巧记为[负数:正:正]。
2、对应的元素start>end时,字符串切片结果为空。
3、取元素的顺序是从左向右。
二)步长值为负数时:
1、start为空默认为正无穷,end为空默认为负无穷。巧记为[正:负:负]。
2、对应的元素start<end时,字符串切片结果为空。
3、取元素的顺序是从右向左。
三)案例:
string = '0123456789'
# 步长值为正,start为空默认为负无穷,end为空默认为正无穷 [负数:正:正] start>end为空 从左向右取元素
# 步长值为负,start为空默认为正无穷,end为空默认为负无穷 [正:负:负] start<end为空 从右向左取元素
print(f"string[3:]:{string[3:]}") # [3,正无穷) 3456789
print(f"string[4:2]:{string[4:2]}") # [4,2) 步长值为正,start>end时,结果为空
print(f"string[3::-1]:{string[3::-1]}") # [3,负无穷) 3210
print(f"string[:-5]:{string[:-5]}") # [正无穷,-5对应的元素) 01234
print(f"string[-10:-5:-1]:{string[-10:-5:-1]}") # 步长值为负, start<end为空
print(f"string[:-5:-1]:{string[:-5:-1]}") # [正无穷到-5对应的元素) 9876
print(f"string[::-1]:{string[::-1]}") # 字符串反转 9876543210
print(f"string[::-2]:{string[::-2]}") # 步长为2,从右向左取元素 97531