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牌照,爱沙尼亚数字货币牌照&…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
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…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...