字符串切片

切片定义:切片用于提取序列的一部分

切片与索引比较:使用索引来访问单个元素,
        使用切片来访问特定范围内的元素。

遵循前闭后开原则:第一个索引指定的元素包含在切片内,第二个索引指定的元素不包含在切片内。

示例1:
my_str = 'abcdefg'
print(my_str[1:4])        # 'bcd'

缩写情况:如果切片结束于序列末尾,可以省略第二个索引;
                  如果切片开始于序列开头,可以省略第一个索引;
                  如果复制整个序列,可以将两个索引都省略。

示例2:
my_str = 'abcdefg'
print(my_str[1:])        # bcdefg
print(my_str[:4])        # abcd
print(my_str[:])         # abcdefg 

空序列的两类情况:第一个索引指定的元素位于第二个索引指定的元素后面。

示例3:
my_str = 'abcdefg'
print(my_str[-3:0])            # ''
print(my_str[0:-3:-1])         # ''

执行上面切片操作时,显式或者隐式的指定起点和终点,但是忽略了另一个参数--步长,默认值为1。
当步长值为负数时比较:

示例4:
my_str = 'abcdefg'

终--起--终
print(my_str[1::1])        # bcdefg
print(my_str[1::-1])       # ba

起--终--起
print(my_str[:1:1])        # a
print(my_str[:1:-1])       # gfedc

总结:
遵循前闭后开
步长值为正,起始值在终点值之前
步长值为负,起始值在终点值之后

步长值不为1时:每隔3个元素提取一个,步长值为4:

示例5:
my_str = 'abcdefg'
print(my_str[::4])        # ae
原文地址:https://www.cnblogs.com/mcladyr/p/13977487.html