python切片一文让你全部搞懂

【python】一文搞懂序列、列表、元组、集合、字典区别及其应用 阅读详情

5.1 字符串

这里介绍常用的几种方法

5.1.1 创建
a = 'apple'
b = "apple"
c = '''这是一个苹果
你知不知道'''   # 创建多行字符串

建议:在python使用字符串根据自己习惯要么都使用单引号,要么都是用双引号。这样代码可读性会更好,不会使代码混乱。

5.1.2 访问
  1. 知道下标: 可以通过索引访问

    print(a[3])
    
    

    这种方式比较简单

  2. 使用for循环

    for i in a:
        print(i) 
    
    

    for循环注意事项:

    for i in a:
        if(i=="a"):
            a[i] =5
        print(i)
    
    

    上面的代码会有什么问题吗?不妨运行一下:

    很显然会报一个:'str' object does not support item assignment

    其实上面已经提到了,我们的 str是不可变数据类型 ,所以我们不可以修改内部的值。

    延伸:我们在 JAVA中String也是不可变的,使用final修饰,我们replace犯法其实就是 new String() 创建一个新的对象。

  3. 使用切片

    我们不仅可以在字符串中使用切片,也可以在 其他对象,比如:列表,元组等。

    切片语法:

    切片的语法如下:

    sequence[start:stop:step]
    
    
    • start:切片的起始位置(包含)。 默认为 0 (思考默认是否正确后面有提到)
    • stop:切片的结束位置(不包含)。 省略不写时表示到末尾结束
    • step:切片的步长(可选参数,默认为 1)。

    这里需要说明一下,我们的start ,stop, step可以为正数,同时也可以为负数

    下面介绍切片的所有语法:(都是经过博主亲自测试整理,可以验证补充纠错),

    1. 不省略 :

      • 全为正:

        s ="applet"
        print(len(s))
        print(s[0:6:1])
        
        

        正常切片,一定记住不包含最后一个索引。

        需要注意:

        • 当 stop大于 字符串的索引时,我们会截取整个字符串。
      • 有负数的情况

        首先来讲讲每个位置上出现负数所代表的含义:

        • start 和 stop为负数表示从右往左的索引,以 -1 为例,-1 表示右边第一个元素,依次类推。
        • step为负数时,表示 从右往左(还是从start索引到 stop索引) 遍历,如果是-1 就说从右往左每次前进1步。

        看到这里你大概就可以明白了,这里需要注意的是,无论是正数还是负数,我们的 stop位置的索引,永远都是不包含的。

        s = "applet"
        #stop 为负数
        print('输出:{name}'.format(name = s[0:-1:1]))  # 输出:apple
        
        

        这个例子就充分说明了stop位置的索引永远都不包含。

      • 总结:

        如果我们想要截取一个有效的字符串,(字符串不为空),

        • 当 step为正时,我们的 stop要大于start
        • 当 step为负时,我们的 start要大于stop
    2. 省略(我们要看懂别人的代码,省略形式是必会的)

      • 不省略 冒号

        s = "applet"
        # 省略一位,我们不能省略冒号,省
        #省略 start位置
        print('输出:{name}'.format(name= s[:-3:-1]))  #输出:
        #省略 start
        print('输出:{name}'.format(name= s[:-3:1]))
        ​
        print('输出:{name}'.format(name= s[::-1]))
        
        

        输出结果:

        输出:te 输出:app 输出:telppa

        我们到这里就会发现一个结论 : start和 stop位置并不都是默认为 0和 最后一个位置,他其实和 step的正负有关,和start 和stop没有关系,

        • 如果step 为 1正数,从前往后,start默认index = 0 ,stop默认 index= 结尾结束
        • 如果step为 负数,从后往前,start默认为index = -1, stop默认 index=开始位置

        所以这里:

        print('输出:{name}'.format(name= s[::1]))
        ​
        print('输出:{name}'.format(name= s[::-1]))
        
        

        第一个结果是:输出:applet,拿到真个字符串

        第二个结果是:输出:telppa,字符串反转

      • 省略冒号,显然了只能省略一个冒号

        print('输出:{name}'.format(name= s[1:4]))
        print('输出:{name}'.format(name= s[1:]))
        print('输出:{name}'.format(name= s[:3]))
        print('输出:{name}'.format(name= s[:]))
        
        

        很显然了,我们省略的只能是 step的值,这里显然就很好理解每个代码的含义了。这里其实跟range函数是一样的省略的都是 step。并且大家要注意,省略步长,省略的步长是1

step的正负影响什么?

step为正,截取方向是从左到右,step为负,截取方向是从右向左。不要让多个正负号把自己搞混了,清楚这点十分重要。

5.1.3. 格式化format

我们在进行输入输出的时候都 喜欢将变量放在 字符串中进行打印,在python中我们使用format进行,

print("he is {name}".format(name ="lisi"))

这里还要注意的是:使用 f 在字符串前面去格式化,这种你方法更加的简单和方便

其他的方法我们在学完对象之后再看可能理解会深刻一点

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

一文搞懂Python的数据结构-列表 当我们去购物时,我们通常会准备一个购物清单,其中列出了我们需要购买的物品。你可以轻松地查看清单中的物品,确保你购买了所有需要的东西。如果在购物过程中,你意识到还需要其他物品,也可以方便地在列表中添加或删除。列表是可变的,这意味着你可以修改列表的内容。当你有一个列表并且你只对其中的一部分感兴趣时,你可以使用列表切片来获取你想要的部分。在不搭建本地环境的情况下,可以直接复制课程中的代码,在该网站上运行,观察运行效果。在Python中,列表中的元素可以通过索引来访问。修改列表元素意味着更改列表中特定位置的值。 阅读详情

相关推荐

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5060

python中的字符串对象和切片操作

本章导航: 字符串对象 字符串常用方法 切片操作 本章小结 1、字符串对象: 什么是字符串? 字符串就是被引号引住的内容叫做字符串,包括:单引号,双引号,三引号 形如: a = “支付宝” b = “支付宝” c = “’支付宝’” 这就是字符串类型 2、字符串常用方法: <1>、capitalize( ) #...

烟柳寒殇的博客 367

生信实战:用bcftools玩转VCF文件处理(从压缩到注释全流程)

本文详细介绍了使用bcftools处理VCF文件的全流程实战指南。从数据准备、压缩索引、信息提取、质量统计到核心的变异过滤与功能注释,手把手教你高效管理基因组变异数据。重点阐述了如何利用bcftools进行VCF文件注释,整合外部数据库信息,为变异位点添加关键的生物学标签,是生物信息学数据分析的必备技能。

rgv23456789的博客 343

(转)彻底搞懂Python切片操作

https://www.jianshu.com/p/15715d6f4dad 写在前面: 利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正是专门用于实现这一目标的有力武器。理论上,只要条件表达式得当,可以通过单次或多次切片操作实现任意目标值切取。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得较深,难以察觉...

zyb418的专栏 2万+

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 968

锐捷交换机堆叠配置举例

一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是...

dongsheng_9234的专栏 8289

一文帮你彻底搞懂Python切片操作!

(一)start_index、end_index、step可同为正、同为负,也可正负混合使用。但必须遵循一个原则,即两者的取值顺序必须是相同的,否则无法正确切取到数据:当start_index的位置在end_index的左边时,表示从左往右取值,此时step必须是正数(同样表示从左往右);当start_index的位置在end_index的右边时,表示从右往左取值,此时step必须是负数(同样表示从右往左)。对于特殊情况,

m0_75067629的博客 4545

libfranka---joint_impendence_control例程分析

joint_impedance_control.cpp例程分析 部分内容来自链接,我个人以初学者的角度对代码进行了更加细致的解释。 核心部分: // Set and initialize trajectory parameters. const double radius = 0.05; const double vel_max = 0.25; const double acceleration_time = 2.0; const double run_time = 20.0; d

weixin_41567783的博客 1123

python 二维列表切片_彻底搞懂Python列表切片

文章的开始,我先来说一下自己对于Python中列表的理解,**列表**在我的理解中很简单,就是一个**容器**,可以存储任意数据类型的集合,这个容器的容量也肯定是有上限的,在32位python的存储限制是 536870912 个元素,64位python的存储限制是1152921504606846975 个元素。列表是可以根据它所存储的元素来进行内存空间的扩大,所以从这点来说列表是**可变的**;而...

weixin_42364852的博客 1万+

快速卷积结构FIR数字滤波器的设计与ARM平台实现

本文提出了一种基于快速卷积结构的FIR数字滤波器设计与实现方案。通过Matlab设计了满足特定指标的低通FIR滤波器,采用重叠-保存法和重叠-相加法两种快速卷积算法,将计算复杂度从O(N·M)降低到O(NlogN)。详细介绍了滤波器系数生成、性能验证流程,并提供了ARM平台C语言实现的关键技术,包括定点量化处理。实验结果表明,该方法能有效滤除混合信号中的高频干扰,保留目标1kHz正弦信号,验证了设计方案的有效性。

huanghm88的专栏 125

YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

大家好!欢迎阅读本专栏。本专栏涵盖了YOLO8中C2f、主干网络、检测头、注意力机制、Neck等多种结构的创新,同时也包括了 YOLO相关的基础知识以及相关项目。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 3万+

彻底搞懂【Python】切片操作

在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情况。若有错误和不足之处请大牛指正!

GR001009的博客 6088

模型预测控制(MPC)解析(六):有约束的MPC简介

本文为阅读笔记,仅供学习交流使用!!! 先从一个例子开始,说明当原始设计的控制信号满足操作约束时,控制系统的性能会显著恶化。并且只要稍加修改,如果在控制器的实现中加入约束,则性能恶化的程度可以降低,从而产生约束控制的思想。 在学习有约束控制之前,先看一个控制系统在控制信号饱和和不饱和的情况下运行的例子。 例:无阻尼振荡器的数学模型如下: 采样周期为Δt=0.1\Delta{t}=0.1Δt=0.1,对应的离散时间状态空间模型为: 设计目标是:设计一个预测控制系统,使得系统输出跟踪单位阶跃响应越快越好。预

行者无疆的博客 6655

(八)彻底搞懂Python切片操作

目录Python切片一、使用切片获取列表部分元素二、使用切片为列表增加元素三、使用切片替换和修改列表中的元素四、使用切片删除列表中的元素 Python切片 在形式上,切片使用2个冒号分隔的3个数字来完成。 [start:end:step] 第一个数字start表示切片开始位置,默认为0; 第二个数字end表示切片截止(但不包含)位置(默认为列表长度); 第三个数字step表示切片的步长(默认为...

zag666的博客 4536

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python怎么切片提取_彻底搞懂Python切片操作

在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情况。若有错误和不足之处请大牛指正!一、...

weixin_29644109的博客 4192

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python切片语法-彻底搞懂Python切片操作

在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情况。若有错误和不足之处请大牛指正!一、...

weixin_37988176的博客 1345

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

彻底搞懂Python切片操作

https://www.jianshu.com/p/15715d6f4dad 在利用python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以...

yanyuan_smartisan的博客 944

python小知识:[:-1]与[::-1]-——彻底搞懂切片

文章目录彻底搞懂切片一、python可切片对象的索引方式二、Python切片操作的一般方式三、 Python切片操作详细例子1 切取单个元素2 切取完整元素3 start_index和end_index全为正(+)索引的情况4 start_index和end_index全为负(-)索引的情况5 start_index和end_index正(+)负(-)混合索引的情况6 多层切片操作7 切片操作的三...

liuluTL的博客 4166

彻底搞懂python序列的切片操作

一、切片 切片是python极其有用且强大的功能。它使我们能够使用简单明了的语法来操作序列,包括字符串、列表、元组。切片简单来说就是从序列中切取咱们需要的值,并生成一个新的序列,理论上来说,只要表达式正确,我们可以通过切片切取序列中的任意值。 二、切片的语法 object[start_index : end_index : step] 如果没有缺省的话,表达式应该包含三个参数以及两个冒号,三个...

gudu12306的博客 1840

python两个冒号切片_彻底搞懂python序列的切片操作

一、切片切片是python极其有用且强大的功能。它使我们能够使用简单明了的语法来操作序列,包括字符串、列表、元组。切片简单来说就是从序列中切取咱们需要的值,并生成一个新的序列,理论上来说,只要表达式正确,我们可以通过切片切取序列中的任意值。二、切片的用法object[start_index : end_index : step]如果没有缺省的话,表达式应该包含三个参数以及两个冒号,三个参数的意义分...

weixin_39873456的博客 1654

python切片表达式3个参数_彻底搞懂Python切片操作

一、Python可切片对象的索引方式Python可切片对象的索引方式包括:正索引和负索引两部分。如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例: 二、Python切片操作的一般方式一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。切片操作基本表达式:o...

weixin_39933895的博客 3308

python切片操作失败原因_彻底搞懂Python切片操作

cgx.jpg写在前面:利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正是专门用于实现这一目标的有力武器。理论上,只要条件表达式得当,可以通过单次或多次切片操作实现任意目标值切取。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情形,下文均以list类型作...

weixin_33045071的博客 1716

python 切片_彻底搞懂Python切片操作

阅读前提问,文章结尾有答案a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print(a[-1:] == a[-1])这个输出是True or False?今天来和大家一起讨论一下切片的知识点,列表的切片相信大家都用过,切片操作的基本语法比较简单,但是内在逻辑还是比较绕的,下面我会结合例子来总结切片操作的各种情况。一、 Python可切片对象的索引方式包括:正索引和负索引两部分...

weixin_39551993的博客 531

python序列数据切片_彻底搞懂python序列的切片操作

一、切片切片是python极其有用且强大的功能。它使我们能够使用简单明了的语法来操作序列,包括字符串、列表、元组。切片简单来说就是从序列中切取咱们需要的值,并生成一个新的序列,理论上来说,只要表达式正确,我们可以通过切片切取序列中的任意值。二、切片的用法object[start_index : end_index : step]如果没有缺省的话,表达式应该包含三个参数以及两个冒号,三个参数的意义分...

weixin_32342639的博客 2589

python切片详解_彻底搞懂Python切片操作

cgx.jpg写在前面:利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正是专门用于实现这一目标的有力武器。理论上,只要条件表达式得当,可以通过单次或多次切片操作实现任意目标值切取。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情形,下文均以list类型作...

weixin_39729784的博客 681
上一篇: 提升代码效率:掌握Python中并行for循环从入门到精通
下一篇: python 内存性能分析
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值