首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Python】序列 - 数据容器 ( 序列简介 | 序列切片 | 省略 起始坐标 / 结束坐标 / 步长 切片 | 列表切片 | 字符串切片 | 元组切片 | 步长 -1 的切片 )

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

作者头像
韩曙亮
发布2023-10-11 17:46:35
发布2023-10-11 17:46:35
9280
举报

一、序列简介

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

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

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

二、序列切片

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

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

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

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

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

三、代码示例 - 序列切片

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

代码示例 :

代码语言:javascript
复制
"""
序列切片 代码示例
"""

# 列表 切片
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]

执行结果 :

代码语言:javascript
复制
[0, 1, 2, 3]
[1, 2, 3, 4, 5]
[1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3, 4, 5]

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

代码示例 :

代码语言:javascript
复制
# II. 对 字符串 str 切片

my_str = "123456789"

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

执行结果 :

代码语言:javascript
复制
13579

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

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

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

代码示例 :

代码语言:javascript
复制
# III. 步长为负数的 切片

my_str = "123456789"

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


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

执行结果 :

代码语言:javascript
复制
987654321
543

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

代码示例 :

代码语言:javascript
复制
# IV. 对元组进行切片

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

执行结果 :

代码语言:javascript
复制
(5, 3)

5、代码示例 - 完整版

代码示例 :

代码语言:javascript
复制
"""
序列切片 代码示例
"""

# 列表 切片
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)

执行结果 :

代码语言:javascript
复制
[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)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、序列简介
  • 二、序列切片
  • 三、代码示例 - 序列切片
    • 1、代码示例 - 省略 起始坐标 / 结束坐标 / 步长
    • 2、代码示例 - 字符串切片
    • 3、代码示例 - 步长为 -1 的切片
    • 4、代码示例 - 对元组进行切片
    • 5、代码示例 - 完整版
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档