Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)
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]
参考
- python 中的[:-1]和[::-1]
- python [:-1] [::-1]的理解
- python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
- python中[::-1]、[::1]、[开始:结束:步进]
Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)相关推荐
- grpc通信原理_容器原理架构详解(全)
目录 1 容器原理架构 1.1 容器与虚拟化 1.2 容器应用架构 1.3 容器引擎架构 1.4 Namespace与Cgroups 1.5 容器镜像原理 2 K8S原理架构 2.1 K8S主要功能 ...
- serverlet 原理_容器原理架构详解(全)
目录 1 容器原理架构:容器与虚拟化.容器应用/引擎架构.Namespace与Cgroups.镜像原理 2 K8S原理架构:K8S主要功能.K8S 系统架构.Pod原理与调度 3 K8S存储方案:容器 ...
- kotlin和python哪个好?驱动核心源码详解和Binder超系统学习资源,终局之战
开头 在大厂,写得一手好文档是一个非常吃香的技能.这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器. 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资 ...
- [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...
此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...
- python装饰器实例-python装饰器实例大详解
原标题:python装饰器实例大详解 一.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我 ...
- python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...
原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...
- python读取大文件csv_对python中大文件的导入与导出方法详解
1.csv文件的导入和导出 通过一个矩阵导出为csv文件,将csv文件导入为矩阵 将csv文件导入到一个矩阵中 import numpy my_matrix = numpy.loadtxt(open( ...
- Python必备基本技能——命令行参数args详解
Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...
- python 制作gif-利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
最新文章
- JSP 基础之 JSTL c:forEach用法
- vue中检测对象和数组值变化的问题
- c语言库函数大全文库,C语言库函数源代码
- lrc歌词编辑器 android,Lrc歌词编辑器(LRC速配歌词)
- 计算机1M代表什么,1M网速是多少 Mbps是什么意思
- 企业信息化建设中流程梳理的步骤及方法
- java打地鼠小游戏
- 2022超火的微信小说小程序源码-自带安装教程
- linux网络查看,Linux网络命令(网络环境查看和网络测试命令)
- Mac重装系统出错的心路历程
- [02]Hello World!
- python_pandas入门(by offical document/reference)/loc和iloc操作/dataframe插入操作/pandas读取无表头的文件/查找某一列是否有某个值
- 使用Python对股票数据进行数据分析(一)-计算日线行情、5日均线、10日均线行情并显示
- Python更新过pip安装库报错cannot import name main问题
- 十几套IT培训视频教程免费下载,为你节省几万元培训费用
- 20 多个国外优秀Android开源 App
- 先调用finish() 然后startActivity有什么区别?
- Django框架之DRF框架
- html读秒倒计时,使用javascript做时间倒数读秒功能的实例
- 四图秒懂BN、LN和IN
热门文章
- (设计模式之一)浅析简单工厂模式
- pku3670 Eating Together
- oracle发生重启动的介绍
- 985硕士面试20场全被拒,被竞争困住的数据分析人,太难了
- 转行数据分析,是选Python还是R?
- excel服务器没有响应怎么办,勤哲Excel服务器技术支持|Excel服务器常见问题解答...
- python tkinter place布局
- centos安装软件【google浏览器,QQ】【拷贝旧的文件源作为备份】【软件源更换为清华源】
- 如何在局域网搭建php网站,【自己网站搭建】如何使用本地计算机,建立本地网站?怎样才能让局域网上的人都能访问到我电脑上的本地网站?...
- oracle工作日执行job,Oracle中执行Job定时执行