python切片(彻底解除对切片的曲解)
sequence[start:stop:step]
**start: **step为正时默认为0,step为负时默认为-1
stop:_ step为正时默认为结尾结束,step为负时默认为开始位置_
ss=“abcdefg”
以该字符串举例,ss[start:stop:step]的意思是将字符串ss从start开始截取(包括start),截取到stop(不包括stop),step为截取的步长(step的符号为截取方向,正则从左到右,负则从右到左)
下面是几个例子:
ss=‘abcdefg’
print(ss[::]) 输出abcdefg start=0, stop=len(ss) ,step=1
print(ss[::-1]) 输出gfedcba start=-1 ;stop=第一位的前一位; step=-1
值得注意的是,start和stop的值为负时,代表倒数第几位的数,如上面start=-1代表从倒数第一个数开始截取
下面几个例子说明了序列下标为负时的含义(并未用到切片,不是默认了stop和step)
print(ss[-1]) # g 倒数第一个元素
print(ss[-3]) # e 倒数第三个元素
print(ss[-len(ss)]) # a 倒数第len(ss)个元素,也是第一个元素
print(ss[-(len(ss)+1)]) #越界了,报错:string index out of range
须知,ss[1]并不代表stop和step取默认值后对ss字符串的截取,而仅仅代表返回ss字符串下标为1的元素,stop和step取默认值后对ss字符串的截取应该写作ss[1: :]
print(ss[1]) # b
print(ss[1::]) #bcdefg
切片截取出现空串的情况:
首先须知的几点:
1、step为正时,从左向右遍历,为负时从右向左遍历,起点皆为start
2、无论start和stop各自取正或负,无论start>stop或start<=stop,截取的方向永远是从start到stop
3、当step代表的遍历方向与start到stop的方向相反时,会截取到空串
那么问题来了,如何判断start到stop的方向(从左到右 or 从右到左)?
一个误区是比较start和stop的值的大小,由它们在数轴上的大小来判断顺序,这是不对的
同样以字符串ss=‘abcdefg’为例:
s[-1:3: ] #截取方向为从右到左,start=-1,stop=-2
s[3:-2: ] #截取方向为从左到右, start=3,stop=-2
我们可以看到
在s[-1:3: ] 中,虽然start<stop,但截取方向确是从右到左
在s[3:-2: ] 中, 虽然start>stop,但截取方向确是从左到右
所以可以说,截取方向与start和stop值的大小比较无关系,而是与ss[start]和ss[stop]代表的元素的位置先后顺序有关,
如:在s[-1:3: ]中,s[-1]代表倒数第一个元素’g’(也就是第七个元素),s[3]代表第四个元素’d’,start代表的元素在stop代表的元素之后,因此由start截取到stop是从后到前(也就是从右到左)
下面是几个截取到空串的例子:
ss='abcdefg'print("=="
相关文章:
python切片(彻底解除对切片的曲解)
sequence[start:stop:step] **start: **step为正时默认为0,step为负时默认为-1 stop:_ step为正时默认为结尾结束,step为负时默认为开始位置_ ss=“abcdefg” 以该字符串举例,ss[start:stop:step]的意思是将字符串ss从start开始截取(包括start),截取到stop(不包括sto…...

Java—— StringBuilder 和 StringBuffer
1.介绍 由于String的不可更改特性,为了方便字符串的修改,Java中又提供了StringBuilder和Stringbuffer类,这两个类大部分功能是相同的,以下为常用方法: public static void main(String[] args) {StringBuilder sb1 n…...

vs2019 c++20 规范 STL库中关于时间的模板
在学习线程的时候,一些函数会让线程等待或睡眠一段时间。函数形参是时间单位,那么在 c 中是如何记录和表示时间的呢?以下给出模板简图: 谢谢...

激光焊接机作为一种高效、精密的焊接设备
激光焊接机是一种用于材料加工时激光焊接的机器,以下是对其的详细介绍: 1. 定义与别称: 激光焊接机,又常称为激光焊机、镭射焊机,是材料加工激光焊接时用的机器。 2. 工作原理: 激光焊接是利用高能量…...
vite为什么速度快
原因 vite快的原因是因为 vite在开发环境中是使用的 esbuild,esbuild 是 go 写的,go 编译型语言、多线程,nodejs 解释型语言、单线程,并且 vite 使用了原生 esm 导入的,所以快一点,当然,这也…...

Java网络编程(下)
White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🙉 内容推荐:Java网络编程🙉 🐹今日诗词:姑苏城外寒山寺,夜半钟声到客船🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主…...

APISIX的安装与测试(springboot服务测试)
安装: 1.1安装依赖: curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -1.2 安装 OpenResty yum-config-manager --add-repo https://openresty.org/package/centos/openresty.reposudo yum i…...
AI技术:探索未来智能的无限可能
随着科技的飞速发展,人工智能(AI)技术已经成为我们这个时代最引人瞩目的科技力量。从简单的自动化任务到复杂的决策支持系统,AI技术正在以前所未有的速度改变着我们的世界。本文将深入探讨AI技术的定义、发展历程、当前应用、面临…...
npm install 出错,按照版本不匹配解决
一、现象 npm install npm WARN config global --global, --local are deprecated. Use --locationglobal instead. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: panshi-main-web0.1.0 npm ERR! Found…...

【第1章】SpringBoot实战篇之注册接口
文章目录 前言一、代码部分1. User2.UserMapper13. UserSerivce4. UserController15. Result 二、测试1.注册2.再次注册 总结 前言 下面介绍用户注册接口。 一、代码部分 1. User package org.example.springboot3.bigevent.entity;import com.baomidou.mybatisplus.annotat…...

代码随想录-Day25
216.组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输…...

JavaWeb_SpringBootWeb基础
先通过一个小练习简单了解以下SpringBootWeb。 小练习: 需求:使用SpringBoot开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 步骤: 1.创建SpringBoot项目,勾选We…...

Stable Diffusion生成图片的参数查看与抹除方法
前几天分享了几张Stable Diffusion生成的艺术二维码,有同学反映不知道怎么查看图片的参数信息,还有的同学问怎么保护自己的图片生成参数不会泄露,这篇文章就来专门分享如何查看和抹除图片的参数。 查看图片的生成参数 1、打开Stable Diffus…...

Linux下多线程的相关概念
🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误或者有写的不好的地方的话&…...
在java java.util.Date 已知逝去时间怎么求年月日
在java中,可以使用java.util.Date类来获取年、月和日。以下是一种方法: 首先创建一个java.util.Date对象,表示逝去的时间。 Date pastDate new Date(逝去的时间的毫秒数);然后使用java.util.Calendar类来获取年、月和日。 Calendar calen…...

LeetCode 2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户
【LetMeFly】2928.给小朋友们分糖果 I:Java提交的运行时间超过了61%的用户 力扣题目链接:https://leetcode.cn/problems/distribute-candies-among-children-i/ 给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友,确保没有任何…...

【typescript/flatbuffer】在websocket中使用flatbuffer
目录 说在前面场景fbs服务器代码前端typescript代码问题 说在前面 操作系统:Windows11node版本:v18.19.0typescript flatbuffer版本:24.3.25 场景 服务器(本文为golanggin)与前端通信时使用flatbuffer进行序列化与反序列化通信协议为websock…...

构建一个文字冒险游戏:Python 编程实战
在本文中,我们将探索如何使用 Python 创建一个简单的文字冒险游戏。通过这个项目,你将了解到基础的编程技术,包括条件语句、函数和基本的用户输入处理,同时也能体会到文本游戏的魅力和设计的挑战。 项目概述 文字冒险游戏是一种…...

09Linux GDB学习笔记
Linux GDB使用 目录 文章目录 Linux GDB使用先编译文件1.检查安装1.1 安装GDB 2.启动GDB3.退出GDB4.设置断点4.1 在指定行号处设置断点4.2 在指定函数名处设置断点4.3 在指定源文件和行号处设置断点 4.4查看断点信息4.5删除断点5.运行5.1 <font color#ff0000>逐过程&am…...
海外金融牌照
一般来说牌照申请分两个大类:数字货币牌照和外汇牌照。每个国家的牌照具体监管的情况也是不一样的。申请牌照时该如何选择? 今天先说说区块链牌照,具有代表性的有美国msb牌照,加拿大msb牌照,爱沙尼亚数字货币牌照&…...

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

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...