Python中切片原理

0 下标说明

无论是str还是list等,从左到右下标从0开始,从右到左下标从-1开始
如:str = 'python',下标示意图如下:

1 两参数:[开始:结束]

知识点1: 遵循左闭右开原则,如:[0:9]等价于数学中的[0,9)

示例:

# 字符串中用法
str = 'python'
print(str[0:3])  # pyt  左闭右开,从位置0到 位置3前的位置2
print(str[0:5])  # pytho 左闭右开,从位置0到 位置5前的位置4
print(str[:-1])  # pytho  左闭右开,从位置0到 位置-1前的-2位置
print(str[:-2])  # pyth  左闭右开,从位置0到 位置-2前的-3位置
# 列表中用法 (同字符串用法!)
list = [1, 2, 3, 4 , 5, 6]
print(list[0:3]) # [1, 2, 3]  左闭右开 从位置0到位置2
print(list[0:5]) # [1, 2, 3, 4, 5]  左闭右开 从位置0到位置4
print(list[:-1]) # [1, 2, 3, 4, 5]  左闭右开 从位置0到位置-1前的-2,即:位置4
print(list[:-2]) # [1, 2, 3, 4]  左闭右开 从位置0到位置-3,即:位置3

知识点2: 缺省值:
(1)左边缺省,默认为0
(2)右边缺省,默认到结束位置
(3)左、右都缺省,默认原始值,即:str[:]、str 输出相同,相当于str[:]复制了str

示例:

# 字符串中用法
str = 'python'
print(str[:3]) # pyt
print(str[:5]) # pytho
print(str[1:]) # ython
print(str[0:]) # python
print(str[:])  # python
# 列表中用法
list = [1, 2, 3, 4 , 5, 6]
print(list[:3]) # [1, 2, 3]
print(list[:5]) # [1, 2, 3, 4, 5]
print(list[1:]) # [2, 3, 4, 5, 6]
print(list[0:]) # [1, 2, 3, 4, 5, 6]
print(list[:]) # [1, 2, 3, 4, 5, 6]

2 三参数:[开始:结束:步长]

知识点1: 步长的正负
步长的值>0,则:从左往右取值
步长的值<0,则:从右往左取值

知识点2: 步长的取值
步长的值 = n,表示:向左或右数,n步取一个值

知识点3: 缺省值
前两个参数[开始:结束]二参数情形,步长缺省值为:1,即:从左往右数1步取一个值

示例:

# 字符串中用法
str = 'python'
print(str[::])  # python
print(str[::1]) # python
print(str[::2]) # pto 从左往右数,数2步,取一个值
print(str[::-1]) # nohtyp 从右往左数,数1步,取一个值,即:取全部值
print(str[::-2]) # nhy 从右往左数,数2步,取一个值
# 列表中用法
list = [1, 2, 3, 4 , 5, 6]
print(list[::]) # [1, 2, 3, 4, 5, 6]
print(list[::1]) # [1, 2, 3, 4, 5, 6]
print(list[::2]) # [1, 3, 5]
print(list[::-1]) # [6, 5, 4, 3, 2, 1]
print(list[::-2]) # [6, 4, 2]
# [n::-1] 示例
# 先找下标值n,再翻转(从右到左)取值
str = 'python'
list = [1, 2, 3, 4 , 5, 6]
print(str[1::-1]) # yp 先找到下标1的值:y,从右往左取值:yp
print(str[2::-1]) # typ 先找到下标2的值:t,从右往左取值:typ
print(list[1::-1]) # [2, 1] 先找到下标1的值:2,从右往左取值:[2, 1]
print(list[2::-1]) # [3, 2, 1] 先找到下标2的值:3,从右往左取值:[3, 2, 1]

参考

  1. python 中的[:-1]和[::-1]
  2. python [:-1] [::-1]的理解
  3. python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
  4. python中[::-1]、[::1]、[开始:结束:步进]

Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)相关推荐

  1. grpc通信原理_容器原理架构详解(全)

    目录 1 容器原理架构 1.1 容器与虚拟化 1.2 容器应用架构 1.3 容器引擎架构 1.4 Namespace与Cgroups 1.5 容器镜像原理 2 K8S原理架构 2.1 K8S主要功能 ...

  2. serverlet 原理_容器原理架构详解(全)

    目录 1 容器原理架构:容器与虚拟化.容器应用/引擎架构.Namespace与Cgroups.镜像原理 2 K8S原理架构:K8S主要功能.K8S 系统架构.Pod原理与调度 3 K8S存储方案:容器 ...

  3. kotlin和python哪个好?驱动核心源码详解和Binder超系统学习资源,终局之战

    开头 在大厂,写得一手好文档是一个非常吃香的技能.这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器. 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资 ...

  4. [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...

    此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...

  5. python装饰器实例-python装饰器实例大详解

    原标题:python装饰器实例大详解 一.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我 ...

  6. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  7. python读取大文件csv_对python中大文件的导入与导出方法详解

    1.csv文件的导入和导出 通过一个矩阵导出为csv文件,将csv文件导入为矩阵 将csv文件导入到一个矩阵中 import numpy my_matrix = numpy.loadtxt(open( ...

  8. Python必备基本技能——命令行参数args详解

    Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...

  9. python 制作gif-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

最新文章

  1. JSP 基础之 JSTL c:forEach用法
  2. vue中检测对象和数组值变化的问题
  3. c语言库函数大全文库,C语言库函数源代码
  4. lrc歌词编辑器 android,Lrc歌词编辑器(LRC速配歌词)
  5. 计算机1M代表什么,1M网速是多少 Mbps是什么意思
  6. 企业信息化建设中流程梳理的步骤及方法
  7. java打地鼠小游戏
  8. 2022超火的微信小说小程序源码-自带安装教程
  9. linux网络查看,Linux网络命令(网络环境查看和网络测试命令)
  10. Mac重装系统出错的心路历程
  11. [02]Hello World!
  12. python_pandas入门(by offical document/reference)/loc和iloc操作/dataframe插入操作/pandas读取无表头的文件/查找某一列是否有某个值
  13. 使用Python对股票数据进行数据分析(一)-计算日线行情、5日均线、10日均线行情并显示
  14. Python更新过pip安装库报错cannot import name main问题
  15. 十几套IT培训视频教程免费下载,为你节省几万元培训费用
  16. 20 多个国外优秀Android开源 App
  17. 先调用finish() 然后startActivity有什么区别?
  18. Django框架之DRF框架
  19. html读秒倒计时,使用javascript做时间倒数读秒功能的实例
  20. 四图秒懂BN、LN和IN

热门文章

  1. (设计模式之一)浅析简单工厂模式
  2. pku3670 Eating Together
  3. oracle发生重启动的介绍
  4. 985硕士面试20场全被拒,被竞争困住的数据分析人,太难了
  5. 转行数据分析,是选Python还是R?
  6. excel服务器没有响应怎么办,勤哲Excel服务器技术支持|Excel服务器常见问题解答...
  7. python tkinter place布局
  8. centos安装软件【google浏览器,QQ】【拷贝旧的文件源作为备份】【软件源更换为清华源】
  9. 如何在局域网搭建php网站,【自己网站搭建】如何使用本地计算机,建立本地网站?怎样才能让局域网上的人都能访问到我电脑上的本地网站?...
  10. oracle工作日执行job,Oracle中执行Job定时执行