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

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法

文章目录

  • 前言
  • 一、基本语法
  • 二、切片
    • 1.a[i:j]
    • 2.a[i:j:k]
  • 总结:[-1] [:-1] [::-1] [n::-1]


前言

在python中,序列是python最基本的数据结构,包括有string,list,tuple等数据类型,切片对序列型对象的一种索引方法,其中每个元素都有对应的位置值,具有正向递增(从0开始),反向递减(-1开始)的属性,根据此可以进行普通索引或切片索引。普通索引只取出列中一个下标对应的元素,而切片索引取出序列中一个范围对应的元素。本文主要讲对序列对象的切片索引。


一、基本语法

操作符描述
a[i]普通索引,返回序列 a 中第 i 个元素,i为序号
a[i:j]切片,得到 a 序列中序号从 i 到 j(不包括 j )范围元素。
当 i 缺省时,默认为0
当 j 缺省时,默认为len(a)
当 i,j 均缺省时,默认为全部
a[i:j:k]切片, 返回序列 a 中从序号 i 到 j (不包括 j ),以k为步长的元素子序列。
k>0,步长自左而右(正序);i 缺省时,默认为0,j 缺省时,默认为len(a)
k<0,步长自右而左(倒序);i 缺省时,默认为-1,j 缺省时,默认为-len(a)-1

二、切片

1.a[i:j]

[1:3]:取第二、三个元素。

a=[10,20,30,40,50]
a[1:3]
#输出:[20, 30]

在这里插入图片描述

[1:-1]:取第二个到倒数第二个元素。

a=[10,20,30,40,50]
a[1:-1]
#输出:[20, 30, 40]

在这里插入图片描述

[-3:-1]:取倒数第三到倒数第二个元素。

a=[10,20,30,40,50]
a[-3:-1]
#输出:[30, 40]

在这里插入图片描述

  • i,j 缺省

[:-1]:取第一个到倒数第二个元素。

a=[10,20,30,40,50]
a[:-1]
#输出:[10, 20, 30, 40]

在这里插入图片描述

[-1:]:j 缺省,为5,取最后一个元素。

a=[10,20,30,40,50]
a[-1:]
#输出:[50]

在这里插入图片描述

[3:]:j 缺省,为5,取第四个到最后一个元素。

a=[10,20,30,40,50]
a[3:]
#输出:[40, 50]

在这里插入图片描述

[:]:取出全部元素。

a=[10,20,30,40,50]
a[:]
#输出:[10, 20, 30, 40, 50]

在这里插入图片描述

2.a[i:j:k]

[1:6:2]:从左往右,步长2,范围从第二个元素开始到最后一个元素。

a=[10,20,30,40,50]
a[1:6:2]
#输出:[20, 40]

在这里插入图片描述

[-5:-2:2]:从左往右,步长2,范围从第一个元素开始到倒数第二个元素。

a=[10,20,30,40,50]
a[-5:-2:2]
#输出:[10, 30]

在这里插入图片描述

[-1:-6:-2]:从右往左,步长2,范围从最后一个元素开始到第一个元素。

a=[10,20,30,40,50]
a[-1:-6:-2]
#输出:[50, 30, 10]

在这里插入图片描述

  • i,j,k 缺省情况

[ : : ]:i 默认为1,j 默认为6,k 默认为1,从左往右,取全部。

a=[10,20,30,40,50]
a[::]
#输出:[10, 20, 30, 40, 50]

在这里插入图片描述

[1: :2]:j 默认为6,从左往右,步长2,范围从第二个元素开始到最后一个元素。

a=[10,20,30,40,50]
a[1::2]
#输出:[20, 40]

在这里插入图片描述

[ :4:2]:i 默认为0,从左往右,步长2,范围从第一个元素开始到第四个元素。

a=[10,20,30,40,50]
a[ :4:2]
#输出:[10, 30]

在这里插入图片描述

[ : : -1]:i 默认为-1,j 默认为-6,从右往左,取全部,其实就是倒序。

a=[10,20,30,40,50]
a[::-1]
#输出:[50, 40, 30, 20, 10]

在这里插入图片描述

[-1: :-2]:k<0,j 默认为-6,从右往左,步长2,范围从最后一个元素开始到第一个元素。

a=[10,20,30,40,50]
a[-1::-2]
#输出:[50, 30, 10]

在这里插入图片描述

[ :-5:-2]:k<0,i 默认为-1,即从右往左,步长2,范围从最后一个元素开始到第二个元素。

a=[10,20,30,40,50]
a[:-5:-2]
#输出:[50, 30]

在这里插入图片描述


总结:[-1] [:-1] [::-1] [n::-1]

  • [-1]:获取最后一个元素;
  • [:-1]:除了最后一个元素,获取其他所有的元素;
  • [::-1]:对第一个到最后一个元素进行倒序之后取出;
  • [n::-1]:对第一个到第n个元素进行倒序后取出。

相关文章:

【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法

文章目录 前言一、基本语法二、切片1.a[i:j]2.a[i:j:k] 总结&#xff1a;[-1] [:-1] [::-1] [n::-1] 前言 在python中&#xff0c;序列是python最基本的数据结构&#xff0c;包括有string&#xff0c;list&#xff0c;tuple等数据类型&#xff0c;切片对序列型对象的一种索引方…...

剑指JUC原理-9.Java无锁模型

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…...

汽车托运使用的场景

在托运车辆时&#xff0c;要仔细的检查车辆的性能&#xff0c;比如电瓶电量是否充足&#xff0c;发动机的性能是否良好&#xff0c;轮胎是否是正常的气压&#xff0c;冬季时需使用防冻液&#xff0c;车内禁止放易燃易爆物品。 托运时还需选择一家好的托运公司&#xff0c;首先要…...

机器学习 - 加油站数据分析

一、实验数据 数据集&#xff1a;“加油站数据.xls” 数据集介绍&#xff1a;该表记录了用户在11月和12月一天24小时内的加油信息&#xff0c;包括&#xff1a;持卡人标识&#xff08;cardholder&#xff09;、卡号&#xff08;cardno&#xff09;、加油站网点号&#xff08;n…...

基于CMFB余弦调制滤波器组的频谱响应matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、CMFB余弦调制滤波器组原理 4.2、CMFB调制过程 4.3、CMFB特点 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ......................…...

helm一键部署grafana

一键部署命令 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install prometheus prometheus-community/kube-prometheus-stack暴露服务 kubectl port-forward --address 0.0.0.0 deployment/prometheus-gr…...

pytorch复现_NMS

NMS&#xff08;非极大值抑制&#xff09;阈值是用于控制在一组重叠的边界框中保留哪些边界框的参数。当检测或识别算法生成多个边界框可能涵盖相同物体时&#xff0c;NMS用于筛选出最相关的边界框&#xff0c;通常是根据它们的置信度分数。 具体来说&#xff0c;NMS的工作原理…...

备份doris数据到minio

1、MINIO 设置 创建服务账户&#xff0c;记住ACCESS_KEY和SECRET_KEY 创建Buckets doris 设置region 在首页查看服务ip和端口号 2、创建S3备份库 因为minio是兼容S3协议的&#xff0c;所以可以通过s3协议链接minio。 CREATE REPOSITORY minio WITH S3 ON LOCATION "s3://…...

Linux中正则表达式等

grep命令&#xff1a;主要作用就是过滤查找文本内容 常用的选项有&#xff1a; -m 数字:匹配几次之后停止&#xff0c;按行匹配&#xff0c;不是按字符个数&#xff0c;例如 -v:取反 例如: -n:显示匹配的行号 例如&#xff1a; -c:仅显示匹配的行数&#xff0c;不显示匹配内…...

记一次并发问题 Synchronized 失效

记一次并发问题 Synchronized 失效 场景&#xff1a;为避免信息提交重复&#xff0c;给事务方法增加了synchronized修饰符&#xff0c;实际场景中仍然无法完全避免重复&#xff0c;原因是因为在第一个线程执行完synchronized代码段后&#xff0c;此时spring还未完成事务提交&a…...

手机平板摄像头如何给电脑用来开视频会议

环境&#xff1a; Iriun Webcam EV虚拟摄像头 钉钉会议 问题描述&#xff1a; 手机平板摄像头如何给电脑用来开视频会议 解决方案&#xff1a; 1.下载软件 手机端和电脑端都下载这个软件&#xff0c;连接同一局域网打开软件连接好 另外一款软件Iriun 也是一样操作 2.打…...

windows docker desktop 更换镜像 加速

最近 docker hub 访问不了; 经过研究 可以通过添加 代理镜像网址 添加代理服务器的方式 实现完美访问 1添加镜像网站 修改成国内镜像地址就能享受到飞一般的速度&#xff0c;但有一个问题&#xff0c;部分站点镜像不全或者镜像比较老&#xff0c;建议使用多个镜像站。 https…...

linux下多机器ssh免密码登录配置

20,21,22,23等4台机器配置ssh免密登陆 确认sshd配置 查看/etc/ssh/sshd_config文件&#xff0c;确认如下配置没有被注释掉&#xff1a; AuthorizedKeysFile .ssh/authorized_keys每一台机器修改hosts配置主机名&#xff08;可选&#xff09; 执行ssh命令&#xff0c;如…...

【IDEA使用maven package时,出现依赖不存在以及无法从仓库获取本地依赖的问题】

Install Parent project C:\Users\lxh\.jdks\corretto-1.8.0_362\bin\java.exe -Dmaven.multiModuleProjectDirectoryD:\学习\projectFile\study\study_example_service "-Dmaven.homeD:\Program Files\JetBrains\IntelliJ IDEA2021\plugins\maven\lib\maven3" "…...

Flink 统计接入的数据量-滚动窗口和状态的使用

1、概述 在生产场景值&#xff0c;经常需要和上游、下游对数&#xff0c;离线场景可以直接 group by 再 count &#xff0c;但是实时场景中&#xff0c;如果使用 kafka 作为中间件&#xff0c;中间经过几个 job 的过滤转化后&#xff0c;再对照像 Doris 或 Clickhouse 中最终层…...

SpringBoot快速整合canal1.1.5(TCP模式)

SpringBoot快速整合canal1.1.5&#xff08;TCP模式&#xff09; 安装并配置MySQL主从⭐ 1&#xff1a;Docker安装MySQL8.0.28 docker pull mysql:8.0.282&#xff1a;创建目录&#xff1a; mkdir -p /usr/local/mysql8/data mkdir -p /usr/local/mysql8/log mkdir -p /usr/…...

docker打包container成image,然后将image上传到docker hub

第一步&#xff1a;停止正在运行的容器 docker stop <container_name> eg: docker stop xuanjie_mlir 第二步&#xff1a;将对应的container打包成image docker commit <container_id> <镜像名&#xff1a;版本> eg&#xff1a;docker commit 005672e6d97a…...

设计模式—创建型模式之原型模式

设计模式—创建型模式之原型模式 原型模式&#xff08;Prototype Pattern&#xff09;用于创建重复的对象&#xff0c;同时又能保证性能。 本体给外部提供一个克隆体进行使用。 比如我们做一个SjdwzMybatis&#xff0c;用来操作数据库&#xff0c;从数据库里面查出很多记录&…...

Zygote进程通信为什么用Socket而不是Binder?

Zygote进程是Android系统中的一个特殊进程&#xff0c;它在系统启动时被创建&#xff0c;并负责孵化其他应用进程。它的主要作用是预加载和共享应用进程的资源&#xff0c;以提高应用启动的速度。 在Android系统中&#xff0c;常用的进程通信方式有以下几种&#xff1a; Intent…...

API接口加密,解决自动化中登录问题

一、加密方式 AES&#xff1a;对称加密&#xff0c;快RAS&#xff1a;非对称加密&#xff0c;慢AESRAS&#xff1a;安全高效 加密过程&#xff1a;字符串》字节流》加密的字节流&#xff08;算法&#xff09;&#xff0c;解密有可能出现乱码&#xff0c;所以不能直接转成字符…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...