Python中的切片(详细篇)学起来喔

article/2025/10/29 8:40:37

Python中的切片知识.

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段。通俗一点就是在一定范围里面.用刀切出一部分,达到自己需要的一部分.

一、切片的索引方式

以 a = [ 1,2,3,4,5,6,7,8,9] 为例,正索引和负索引

在这里插入图片描述

二、索引的一般方式

一个完整的切片是包含三个参数和两个冒号" : " ,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。

切片操作的基本表达式:object[start:end:step]

start:切片的起始位置,如果没有值的话从头开始.
end:切片的结束位置,但不包含end(前闭后开),如果没有值的话表示切割到结束为止.
step:步长,默认取值为1,如果步长为正数的情况表示从左往右,反正若为负数则表示从右往左. step的正负决定切的方向,这一点需要尤为注意!!!

三、 切片操作的 详细切法

1.切割单个值

>> a = [1,2,3,4,5,6]
>>> a[0] ##单个数,代表位数,第0位就是a里面的第一位
1
>>> a[5]##a里面的第5位,注意要从0作为第一位开始数
6

2.切割完整对象

>>> b=[6,3,6,7,8,2,5,4]
>>> b[:] ##单独一个冒号,代表从头取到尾,步长默认为1
[6, 3, 6, 7, 8, 2, 5, 4]
>>> b[::]##单独两个冒号一样代表从头取到尾,步长默认为1
[6, 3, 6, 7, 8, 2, 5, 4]
>>> b[::-1]##注意,两个冒号后面是步长,步长为1,故应从右往左取
[4, 5, 2, 8, 7, 6, 3, 6]

3.当start和end全部为正数时.

>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a[1:6] ##默认步长为1,从左往右,注意前闭后开
[1, 2, 3, 4, 5] 
>>> a[1:6:-1] 
[] ## 当取值的大小方向与步长的方向冲突时,返回值是空.
>>> a[6:1:-1] 
[6, 5, 4, 3, 2] 
>>> a[:6] ## 没有star代表从头开始取
[0, 1, 2, 3, 4, 5] 
>>> a[:6:-1] 
[9, 8, 7] 
>>> a[6:] 
[6, 7, 8, 9] 
>>> a[6::-1] 
[6, 5, 4, 3, 2, 1, 0] 

4.当start和end全部取负数的时.

>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a[:-6] ## -6意思是从右往左数的第六位,故第六位是4,然后默认步长为1(从右往左),star未写,故从头开始取到4
[0, 1, 2, 3] 
>>> a[-1:-6] 
[]
>>> a[-1:-6:-1] 
[9, 8, 7, 6, 5] 
>>> a[-6:-1] ## 这个是从-6取到-1,步长为1,意思是从右往左数第6位到从右往左的第一位
[4, 5, 6, 7, 8] 
>>> a[:-6:-1] ## 这个是从0取到-6,步长为-1,因为开头是冒号,故起点被隐藏了
[9, 8, 7, 6, 5] 
>>> a[-6:] 
[4, 5, 6, 7, 8, 9] 
>>> a[-6::-1] ## 注意这个不等于[-6:-1],区别是这里是::(两个冒号),两个冒号后连接的是步长
[4, 3, 2, 1, 0]

5.start和end是正负混合情况时

>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a[1:-6] 
[1, 2, 3] 
>>> a[1:-6:-1] 
[]
>>> a[-1:6] 
[]
>>> a[-1:6:-1] 
[9, 8, 7] 

6.连续的切片操作

>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a[:8][2:5][-1:] ## [:8]就是0取到8,在从其中取2到5,最后取-1位
[4] 
a[:8] ---- [0,1,2,3,4,5,6,7] 
[0,1,2,3,4,5,6,7][2:5]----[2,3,4] 
[2,3,4][-1:] ----[4] 

7.切片中的三个参数为表达式

>>> a 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a[1+2:2*3:7%2]  ## 思路一样,运算出来,继续切
[3, 4, 5] 

8.切片可以操作其他的对象

>>> t = (1,2,3,4,5) 
>>> t[1:3] 
(2, 3) 
>>> s = "ACDRF" ##切片在字母上也是可以使用的,所以说切片很强大
>>> s[1:3] 
'CD' 
>>> (0, 1, 2, 3, 4, 5)[:3]#元组的切片操作
>>> (0, 1, 2)
>>> for i in range(0,100): 
... print(i) 
... 
>>> for i in range(0,100)[2::3][-10:]: ## 意思是从第二位开始取,步长为3,[-10]则是从倒数10位开始取,意思是去末尾10位.
... print(i) 
... 
71
74
77
80
83
86
89
92
95
98

总结:

​ 1.如果进行切片操作的时候,超出下标不会报错

​ 2.如果切片操作的时候方向相互矛盾的话,不会报错,返回为空

​ 3.在python中进行反向输出列表

​ 第一种: 循环 第二种 :[::-1] 第三种:reverse()


http://chatgpt.dhexx.cn/article/sYVqMCkW.shtml

相关文章

Python基础知识:切片

什么是切片操作 在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。下面的代码初步展示了切…

Django 对接 Mysql Datatime 日期格式化处理

查询显示结果时,前端界面会是英文格式显示日期,那么应该怎么处理? 这里直接在前端操作,将日期格式化 “ | ” 符号后,拼接日期格式根据本身数据库显示格式来去,我这里是年月日,时分秒

MySQL 日期类型小数秒的处理

一、 MySQL 日期类型对小数秒的支持 注:本文所使用MySQL版本为 5.7 版本。 官方文档:https://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html 1、小数秒位数精度 MySQL 支持小数秒的展示,比如官网的例子,在建表时&…

Java 接收 MySQL datetime 类型日期字段输出格式问题

文章目录 前言Java 与 MySQL 类型对应注解操作代码格式转换参考 前言 不管世事多艰难,别忘了,看开点儿,再温柔点儿,不要满身戾气,也不要紧皱眉头,生活都是在你眉开眼笑的时候,一天天好起来的。…

mysql查询数据库日期_mysql如何查询日期与时间

前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询。关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法。 1.日期和时间类型概览 MySQL支持的日期和时间类型有 DATETIME、TIMESTAMP、DATE、…

操作MYSQL日期格式年 或 月 或 日

1,年(year): select year(create_time) from person2,月(month): select month(create_time) from person3,日(day): select day(create_time) from person4,yyyy-MM-…

关于Thymeleaf 日期字段时间格式化处理

1.接手项目时测试发现页面时间格式不对&#xff0c;如图所示&#xff1a; 代码调整前: <input type"text" name"recruitTime" th:field"*{recruitTime}" class"form-control" placeholder"yyyy-MM-dd HH:mm" required&g…

mysql里如何写日期_mysql之日期函数

写在前面 mysql的学习,断断续续,今天就接着学习mysql的日期操作吧。 系列文章 Mysql实战 1、获得当前时间格式yyyy-MM-dd HH:mm:ss select now(); 结果 另外一个获取当前时间的函数是:sysdate(); 区别:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。 …

MYSQL中时间毫秒数转换及日期格式化

一、时间戳转换成日期 java中常用bigint字段保存时间&#xff0c;通常将时间保存为一大串数字&#xff0c;每次取出需要在程序里转换&#xff0c;有时候程序里不方便&#xff0c;可以使用MYSQL自带的函数 FROM_UNIXTIME(unix_timestamp,format)。 举例&#xff1a; select …

MySql格式化日期

原文路径&#xff1a;https://www.cnblogs.com/duhuo/p/5650876.html mysql查询记录如果有时间戳字段时&#xff0c;查看结果不方便&#xff0c;不能即时看到时间戳代表的含义&#xff0c;现提供mysql格式换时间函数&#xff0c;可以方便的看到格式化后的时间。 1. DATE_FORMA…

com.jcraft.jsch.JSchException: verify: false

背景 高并发下&#xff0c;SFTP上传偶现com.jcraft.jsch.JSchException: verify: false&#xff0c;网上有说升级版本什么的修复了这个bug&#xff0c;然而升级版本后事实证明这个bug还是会出现&#xff0c;大概上传几百次会出现一次。但是项目不可能允许文件丢失&#xff0c;…

java jsch jar_使用JSch从Java在远程计算机上执行命令

SSH是任何一种every-day工具Linux系统管理工作。这是访问网络上的远程计算机&#xff0c;传输数据和执行远程命令的一种简单而安全的方法。除了交互模式之外&#xff0c;还有许多工具可以使依赖于现有技术的远程任务实现自动化ssh服务器/客户端架构。对于这样一种工具&#xff…

java jsch执行脚本_JSch远程执行脚本

JSch远程执行脚本 2017-02-24 在自动化测试的时候&#xff0c;需要远程操控服务器做一些操作&#xff0c;比如切日、起服务器、执行某些脚本。如何实现&#xff1f; 我们可以利用JSch&#xff0c;远程执行脚本。JSch是Java Secure Channel的缩写&#xff0c;是一个SSH2功能的纯…

JSch基本使用

欢迎支持笔者新作&#xff1a;《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》&#xff0c;同时欢迎关注笔者的微信公众号&#xff1a;朱小厮的博客。 欢迎跳转到本文的原文链接&#xff1a;https://honeypps.com/java/jsch-quick-start/ JSch 是SSH2的一个纯Ja…

基于 JSch 实现服务的自定义监控解决方案

一、基于 JSch 实现服务的自定义监控 JSch 是 SSH2 的一个纯 Java 实现。它允许你连接到一个 sshd 服务器&#xff0c;使用端口转发&#xff0c;X11转发&#xff0c;文件传输等等。你可以将它的功能集成到你自己的 程序中。 既然可以通过 SSH 连接到服务器&#xff0c;那就可…

java jsch_java - 使用JSch在远程计算机上执行命令

SSH是访问远程计算机,传输数据和执行远程命令的一种简单而安全的方法。除了基础的交互模式外,还有许多依赖于ssh Client/Server架构的工具可以实现自动化执行远程任务。我们可以找到ssh客户端的许多实现,但是如何从代码编程访问ssh提供的功能呢?本文介绍JAVA语言中使用ssh功…

使用JSCH连接Linux系统并执行命令

一、关于JSCH技术的简单描述 JSCH是SSH的一个纯Java实现。说直白点&#xff0c;就是一个远程连接你其他Linux或者Unix服务器的一个java代码包。其实就是我们使用jsch这个jar包来方便我们编写代码来连接自己linux系统的。 SSH&#xff1a;是目前较可靠&#xff0c;专为远程登录…

【实用技巧篇】JSch使用介绍,实用JSch实现文件传输

文章目录 JSch使用介绍1. jar包下载2. 引入依赖3. 代码实现4. 验证 JSch使用介绍 JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器&#xff0c;使用端口转发&#xff0c;X11转发&#xff0c;文件传输等等。你可以将它的功能集成到你自己的程序中。 1. jar包下载…

Jsch网络工具包的使用及源码简析

一、背景 最近&#xff0c;导师安排了些看论文文献并整理论文至文件服务器的工作&#xff0c;在实验的过程中&#xff0c;我们知道常见的上传文件至服务器有以下方式。 ftp/sftp协议进行上传ssh连接&#xff0c;并通过scp命令进行上传通过xftp、xshell、ftplina等图形化工具上…

JSch学习笔记

JSch笔记 第 1 章 JSch简介 1.1 简述 1&#xff09;jsch是ssh2的一个纯Java实现。它允许你连接到一个sshd服务器&#xff0c;使用端口转发、X11转发、文件传输等。 2&#xff09;SSH 是较可靠&#xff0c;专为远程登录会话和其他网络服务提供安全性的协议。 3&#xff09;…