切片定义:切片用于提取序列的一部分
切片与索引比较:使用索引来访问单个元素,
使用切片来访问特定范围内的元素。
遵循前闭后开原则:第一个索引指定的元素包含在切片内,第二个索引指定的元素不包含在切片内。
示例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