目录
一.序列
二. 序列常用操作——切片
注意
演示
一.序列
序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。
二. 序列常用操作——切片
序列支持切片,即:列表、元组、字符串,均支持进行切片操作切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列;
- 起始下标表示从何处开始,可以留空,留空视作从头开始
- 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
- 步长表示,依次取元素的间隔
- 步长1表示,一个个取元素
- 步长2表示,每次跳过1个元素取
- 步长N表示,每次跳过N-1个元素取
- 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
注意
此操作不会影响序列本身,而是会得到一个全新的序列
演示
1.
my_list = [0,1,2,3,4,5]
result1 =my_list[0:4]#步长默认是1,可以忽略
result2 =my_list[1:4]
result3 =my_list[2:4]
print(f"result1的结果是{result1}")
print(f"result2的结果是{result2}")
print(f"result3的结果是{result3}")
print(f"my_list的结果是{my_list}")
结果是
进行切片操作,原序列保持不变
2.
my_tuple = (0,1,2,3,4,5)
result1 = my_tuple[:]#起始和结束不写表示从头到尾,步长1可以省略
print(f"result1的结果是{result1}")
print(f"my_tuple的结果是{my_tuple}")
结果是
3.
my_str = "abcdefg"
result1 = my_str[::2]#对str进行切片,从头开始,到最后结束,步长2
print(f"result1的结果是{result1}")
print(f"my_str的结果是{my_str}")
my_str2 = "12345678"
result2 = my_str2[::-1]#对str进行切片,从头开始,到最后结束,步长-1 等同于将序列反转了
print(f"result2的结果是{result2}")
print(f"my_str2的结果是{my_str2}")
结果是
4.
my_list = [0,1,2,3,4,5,6,7]
result = my_list[6:1:-1]#对列表进行切片,从6开始,到1结束,步长-1
print(f"result的结果是{result}")
my_tuple = (0,1,2,3,4,5,6,7,8)
result2 = my_tuple[::-2]#对元组进行切片,从头开始,到尾结束,步长-2
print(f"result2的结果是{result2}")
结果是