当前位置: 首页 > news >正文

切片语法[::-1]及其可用的类型

Python 切片通用格式:

sequence[start:stop:step]
  • start:切片开始索引(包含该索引的元素)。

  • stop:切片结束索引(不包含该索引的元素)。

  • step:步长,默认是 1,也可以是负数表示反向切片。

如果省略某个值,就用默认值:

  • start 省略 → 默认从序列开头(或末尾,如果 step 为负数)

  • stop 省略 → 默认到序列末尾(或开头,如果 step 为负数)

  • step 省略 → 默认 1


示例:

lst = [0, 1, 2, 3, 4]print(lst[1:4])   # [1, 2, 3],索引 1 到 3
print(lst[:3])    # [0, 1, 2],从开头到索引 2
print(lst[2:])    # [2, 3, 4],从索引 2 到末尾
print(lst[::2])   # [0, 2, 4],步长为 2
print(lst[::-1])  # [4, 3, 2, 1, 0],步长为 -1,相当于反转列表

--切片用在序列中,即索引是整数的--

1. 列表(list)

lst = [10, 20, 30, 40, 50]
print(lst[1:4])  # [20, 30, 40]
print(lst[::-1]) # [50, 40, 30, 20, 10]

2. 元组(tuple)

t = (1, 2, 3, 4)
print(t[:2])    # (1, 2)
print(t[::-1])  # (4, 3, 2, 1)

3. 字符串(str)

s = "hello"
print(s[1:4])   # "ell"
print(s[::-1])  # "olleh"

4. 字节串(bytes / bytearray)

b = b"abcdef"
print(b[1:4])   # b'bcd'
print(b[::-1])  # b'fedcba'

5. 自定义类实现了 __getitem__

只要类实现了 __getitem__ 方法,并且支持切片对象(slice),就可以用切片:

class MySeq:def __getitem__(self, key):return key
seq = MySeq()
print(seq[1:5:2])  # slice(1, 5, 2)

注意

  • 字典和集合不能直接切片,因为它们是无序集合,没有整数索引。

  • 切片返回的是 同类型的子序列(列表、元组、字符串),但如果是 bytes 切片,返回的是 bytes

http://www.dtcms.com/a/360480.html

相关文章:

  • 基于单片机智能鞋柜/智能鞋橱/智能鞋盒
  • Linux - #操作系统概念 #权限
  • 获取某天的零点日期
  • Java 异常处理全解析:从基础到实践
  • Rust 登堂 之 枚举和整数(八)
  • OpenCL C++ 平台与设备
  • 集合-单列集合(Collection)
  • DrissionPage 实战:动态 IP 代理与百度翻译 API 数据抓取
  • LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对
  • Linux wlan 之网络问题定位分析 实例一
  • 如何确定虚拟机的IP
  • Qt QML连接数据库如何解决重复创建连接问题
  • 【嵌入式】【电机控制】基础知识列表
  • K8s调度核心:从Pod分配到节点优化
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • LeetCode 每日一题 2025/8/25-2025/8/31
  • 模拟在线测试六线测试相关知识
  • 如何快速学习新技能
  • io进程线程;标准IO;0831
  • Java全栈开发面试实录:从基础到微服务架构的深度解析
  • Augment 宣布 Auggie CLI正式向所有用户开放
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • Ring Buffer解析
  • Thread、ThreadLocal、ThreadLocalMap
  • 用户态 kill 与 pthread_kill 的区别?
  • 动态链表:结构体模拟单链表的终极指南
  • ts 定义类型
  • Linux学习:简单模拟实现C++中的线程类
  • C++算法学习专题:前缀和
  • 【Linux网络编程】应用层协议-----HTTP协议