【Python】序列 - 数据容器 ( 序列简介 | 序列切片 | 省略 起始坐标 / 结束坐标 / 步长 切片 | 列表切片 | 字符串切片 | 元组切片 | 步长 -1 的切片 )





一、序列简介



序列 指的是 内容 连续 , 有序 , 可以使用 下标索引 访问 的 数据容器 ;

之前介绍的 列表 list , 元组 tuple , 字符串 str , 都是序列 ;

序列 可以 使用 正向 索引下标 访问 , 也可以使用 反向 索引下标 访问 ;

在这里插入图片描述





二、序列切片



序列 的 切片操作 指的是 从 一个序列中 , 获取一个 子序列 ;

列表 list , 元组 tuple , 字符串 str , 等 数据容器 都是 内容 连续 , 有序 , 可以使用 下标索引 访问 的 序列 数据容器 , 因此 都可以进行 切片操作 ;

由于 元组 和 字符串 都是 不可更改的 数据容器 , 因此 序列切片操作 , 不会影响原来的序列 , 而是得到一个新的序列 ;


序列切片语法 : 序列变量后 , 使用 中括号 [] 进行切片操作 , 在 中括号中 分别给出 起始下标索引 , 结束下标索引 , 步长 , 三者使用 冒号 隔开 ;

序列变量[起始下标索引 : 结束下标索引 : 步长]
  • 起始下标索引 : 如果省略 , 默认从头开始 ; ( 包含该下标索引 )
	# 省略起始坐标
	slice = my_list[:4:1]
	print(slice) # [0, 1, 2, 3]
  • 结束下标索引 : 如果省略 , 默认到尾部结束 ; ( 不包含该下标索引 )
	# 省略结束坐标
	slice = my_list[1::1]
	print(slice) # [1, 2, 3, 4, 5]
  • 步长 : 步长可以省略 , 默认为 1 ;
    • 步长为 1 , 就是一个一个取出元素 ;
    • 步长为 2 , 每两个取一个元素 , 每次取出元素跳过一个元素 ;
    • 步长为 n , 表示每隔 n - 1 个元素 取出一个元素 ;
    • 如果步长为负数 , 说明是 反向取元素 , 起始下标索引 和 结束下标索引 都要反向标记 ;
	# 省略步长
	slice = my_list[1:4]
	print(slice) # [1, 2, 3]




三、代码示例 - 序列切片




1、代码示例 - 省略 起始坐标 / 结束坐标 / 步长


代码示例 :

"""
序列切片 代码示例
"""

# 列表 切片
my_list = [0, 1, 2, 3, 4, 5]

# I. 省略 起始坐标 / 结束坐标 / 步长

# 省略起始坐标
slice = my_list[:4:1]
print(slice) # [0, 1, 2, 3]

# 省略结束坐标
slice = my_list[1::1]
print(slice) # [1, 2, 3, 4, 5]

# 省略步长
slice = my_list[1:4]
print(slice) # [1, 2, 3]

# 省略 起始下标索引 + 步长
slice = my_list[:4]
print(slice) # [0, 1, 2, 3]

# 省略 起始下标索引 + 结束下标索引 + 步长
slice = my_list[:]
print(slice) # [0, 1, 2, 3, 4, 5]

执行结果 :

[0, 1, 2, 3]
[1, 2, 3, 4, 5]
[1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3, 4, 5]

2、代码示例 - 字符串切片


代码示例 :

# II. 对 字符串 str 切片

my_str = "123456789"

# 字符串切片 从头到尾 步长 2
slice = my_str[::2]
print(slice) # 13579

执行结果 :

13579

3、代码示例 - 步长为 -1 的切片


如果步长设置为 -1 , 则从后向前进行切片 ;

如果步长为负数 , 其起始下标索引 要 大于 结束下标索引 ;


代码示例 :

# III. 步长为负数的 切片

my_str = "123456789"

# 字符串切片 从头到尾 步长 -1
slice = my_str[::-1]
print(slice) # 987654321


# 字符串切片 从头到尾 步长 -1
slice = my_str[4:1:-1]
print(slice) # 543

执行结果 :

987654321
543

4、代码示例 - 对元组进行切片


代码示例 :

# IV. 对元组进行切片

my_tuple = (0, 1, 2, 3, 4, 5)
slice = my_tuple[5:1:-2]
print(slice) # (5, 3)

执行结果 :

(5, 3)

5、代码示例 - 完整版


代码示例 :

"""
序列切片 代码示例
"""

# 列表 切片
my_list = [0, 1, 2, 3, 4, 5]

# I. 省略 起始坐标 / 结束坐标 / 步长

# 省略起始坐标
slice = my_list[:4:1]
print(slice) # [0, 1, 2, 3]

# 省略结束坐标
slice = my_list[1::1]
print(slice) # [1, 2, 3, 4, 5]

# 省略步长
slice = my_list[1:4]
print(slice) # [1, 2, 3]

# 省略 起始下标索引 + 步长
slice = my_list[:4]
print(slice) # [0, 1, 2, 3]

# 省略 起始下标索引 + 结束下标索引 + 步长
slice = my_list[:]
print(slice) # [0, 1, 2, 3, 4, 5]

# II. 对 字符串 str 切片

my_str = "123456789"

# 字符串切片 从头到尾 步长 2
slice = my_str[::2]
print(slice) # 13579

# III. 步长为负数的 切片

my_str = "123456789"

# 字符串切片 从头到尾 步长 -1
slice = my_str[::-1]
print(slice) # 987654321


# 字符串切片 从头到尾 步长 -1
slice = my_str[4:1:-1]
print(slice) # 543

# IV. 对元组进行切片

my_tuple = (0, 1, 2, 3, 4, 5)
slice = my_tuple[5:1:-2]
print(slice) # (5, 3)

执行结果 :

[0, 1, 2, 3]
[1, 2, 3, 4, 5]
[1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3, 4, 5]
13579
987654321
543
(5, 3)

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/131095029