博客
关于我
Python切片:[i:j]与[i:j:s]
阅读量:538 次
发布时间:2019-03-07

本文共 870 字,大约阅读时间需要 2 分钟。

Python 切片操作详解

第一部分:切片的基本用法

在 Python 中,a[i:j] 的含义是将从索引 ij-1 的元素复制一遍,生成一个新切片。切片的数据类型与被切片的对象完全一致。

示例:

>>> list1 = [1, 2, 3, 4, 5]>>> list1[1:4]  # 输出 [2, 3, 4]>>> tuple1 = ('a', 'b', 'c', 'd', 'e')>>> tuple1[1:4]  # 输出 ('b', 'c', 'd')>>> string1 = "abcde">>> string1[1:4]  # 输出 'bcd'

第二部分:默认值的使用

切片操作中,ij 的默认值非常实用:

  • i 未指定时,默认为 0
  • j 未指定时,默认为 len(a),即切片到末尾。
  • ij 均未指定时,a[:] 切片相当于复制整个列表 a

示例:

>>> list1 = [1, 2, 3, 4, 5]>>> list1[:3]  # 等同于 list1[0:3],输出 [1, 2, 3]>>> list1[3:]  # 等同于 list1[3:5],输出 [4, 5]>>> list1[:]  # 输出完整副本 [1, 2, 3, 4, 5]

第三部分:步长的使用

切片操作中,a[i:j:s]s 表示步长,默认值为 1,即每次只取一个元素。

关键点:

  • s < 0 时,ij 的默认值会发生变化:
    • i 未指定时,默认为 -1
    • j 未指定时,默认为 -(len(a) + 1)
  • a[::-1] 切片的含义是从最后一个元素开始,倒序切片到第一个元素。

示例:

>>> list1 = [1, 2, 3, 4, 5]>>> list1[::-1]  # 输出 [5, 4, 3, 2, 1]>>> list1[::-2]  # 步长为 -2,输出 [5, 3, 1]

这些切片操作为 Python 列表、元组和字符串提供了强大的灵活性,能够高效处理数据切片和重组任务。

转载地址:http://guknz.baihongyu.com/

你可能感兴趣的文章
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
mysql 状态检查,备份,修复
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>