在使用Python的时候切片时一个很方便的使用方法,对于列表,元组,字符串都适用。
例如,在一个字符串对象中,需要拿出第3~第6个字符。
>> str1 = 'abcdefghijklmnopqrstuvwxyz'
你可能会想到以下下标的形式,一一获取:
>> print(str1[2], str1[3], str1[4], str1[5])
c d e f
但是,很明显这种形式很麻烦,而且当要获取的字符的量很大的时候,这种方法几乎是不可能实现的。这时或许你会想到使用for循环的形式获取。
>> for i in range(2, 6):
>> print(str[i], end = '')
cdef
但是很明显专门写一个for循环很麻烦,这时就该切片登场了:
>> str1[2:6]
'cdef'
注意:
- 切片的使用规则为“顾头弃尾”,意思就是切片包括起始位置,但不包括结束位置。
- 切片不写开始和结束下标,表示选取的是全部内容。
- 切片的第三个参数是步长,当步长为负数时,表示逆序并以绝对值为步长。
- 直接使用负数,表示从后面取第几个。
不写起始位置,取全部
>> str1[:]
'abcdefghijklmnopqrstuvwxyz'
步长为3,每隔3-1个字符取一次
>> str1[::3]
'adgjmpsvy'
不写起始位置,步长为-1,表示逆序字符串
>> str1[::-1]
'zyxwvutsrqponmlkjihgfedcba'
步长为-3,表示逆序取,每隔|-3|-1个字符取一次
>> str1[::-3]
'zwtqnkheb'
-1,表示取倒数第1个字符
>> str1[-1]
'z'
-2,表示取倒数第2个字符
>> str1[-2]
'y'