• 25. Python 字符串的切片方法


    25. Python 字符串的切片方法

    1. 索引取值知识回顾

    【索引取值语法】

    字符串索引取值由3部分构成:

    1. 字符串变量名或者字符串本身。
    2. 英文中括号。
    3. 索引。

    【代码示例】

    # 将字符串ABCDEFG赋值给变量string 
    string = 'ABCDEFG'
    
    # 取字符串的第1个元素
    # 变量名string ;英文中括号;索引为0
    print(string [0])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    A
    
    • 1

    2. 什么是切片

    索引取值可以从字符串中取出1个字符。

    如果要从字符串中取出多个字符,可以用字符串的切片方法。

    在这里插入图片描述

    【备注】上述图片来自关东升的《看漫画学Python》。

    3. 切片的语法

    【语法】

    字符串[star:end:step]

    字符串[开始字符:结束字符:步长]

    字符串切片取值由4部分构成:

    1. 字符串变量名或者字符串本身。

    2. 英文中括号。

    3. 3个参数。

    4. 3个参数之间用英文冒号分隔。

    5. 参数start:表示要取的第1字符的索引(包括该字符),如果不指定,则默认为0

    6. 参数end:表示要取的最后一个字符的索引(不包括该字符),如果不指定,则默认为字符串的长度。

    7. 参数step:表示切片的步长。如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。

    步长我的理解就是向前或向后走几步,可以是正整数,也可以是负整数。

    步长为1,表示向前走1步,那就是依次取值。

    步长为2,表示一次性向前走2步,那就是要跳过1个字符。

    步长为-2,表示一次性向后退2步,即从右往左跳过1个字符。

    【重点提示】切片取值时包括开始字符,不包括结束字符,简单记忆为含前不含后

    4. 切片示例

    4.1 步长为1的切片取值

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 从第3个字符开始,第7个字符结束,步长为1
    print(a[2:6:1])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    滚烫你是
    
    • 1

    在这里插入图片描述

    【2:6:1代码解析】

    start=2即开始字符的索引为2,索引2对应字符串的第3个元素,即字符

    end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符

    step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。

    含前不含后即取前面的字符,不取后面的字符

    因此取到的值为滚烫你是

    【步长为1时可以省略不写】

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 从第3个字符开始,第7个字符结束,步长为1
    print(a[2:6])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    滚烫你是
    
    • 1

    上述代码省略了步长,因此默认步长为1。

    【温馨提示】当省略步长时,最后一个冒号也可以省略。

    4.2 步长为2的切片取值

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 从第3个字符开始,第7个字符结束,步长为2
    print(a[2:6:2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    滚你
    
    • 1

    在这里插入图片描述

    【2:6:2代码解析】

    start=2即开始字符的索引为2,索引2对应字符串的第3个元素,即字符

    end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符

    step=2即字符串间隔为2,间隔为2表示一次性往前走2步,取值时跳过1个字符。

    含前不含后即取前面的字符,不取后面的字符

    因此取到的值为滚你

    4.3 省略开始索引

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 默认索引从0开始
    print(a[:6])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    星河滚烫你是
    
    • 1

    在这里插入图片描述

    【:6代码解析】

    冒号前没有数字,表示省略开始索引。
    数字6后面没有冒号和数字,表示省略步长。

    start=0,没有开始索引,索引默认从0开始,索引0对应的字符串的第1个字符,即字符

    end=6即结束字符的索引为6,索引6对应字符串的第7个元素,即字符

    step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。

    含前不含后即取前面的字符,不取后面的字符

    因此取到的值为星河滚烫你是

    4.4 省略结束索引

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 没有结束索引,默认到整个字符串结尾
    print(a[6:])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    人间理想
    
    • 1

    【6:代码解析】

    冒号后面没有数字表示省略结束索引,默认步长为1。

    在这里插入图片描述

    start=6即开始字符的索引为6,索引6对应字符串的第7个元素,即字符

    end:如果不指定,则默认为整个字符串的长度。

    step=1即字符串间隔为1,间隔为1表示向前走一步,中间不用跳过字符。

    【温馨提示】结束索引默认的情况下可以取到字符串的最后一个字符。

    因此取到的值为人间理想

    4.5 步长为-2

    # 将字符串"星河滚烫你是人间理想"赋值给变量a
    a = "星河滚烫你是人间理想"
    
    # 从倒数第2个字符开始,到正数第3个字符结束;步长为-2
    print(a[-2:2:-2])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    【终端输出】

    理人你
    
    • 1

    在这里插入图片描述

    【-2:2:-2代码解析】

    start=-2即开始字符的索引为-2,索引-2对应字符串的倒数第2个元素,即字符

    end=2即结束字符的索引为2,索引2对应字符串的第3个元素,即字符

    step=-2即字符串间隔为-2,间隔为-2表示一次性往后退2步,取值时跳过1个字符。

    步长为负数表示从右往左走。

    因此取到的值为理人你

    5. 课堂练习

    【练习1】

    中国居民身份证号码中的前2位数字代表省份。
    取出代表省份的前2位数。

    # 将身份证号码赋值给变量id_card 
    id_card = "533001199901013029"
    
    # 方法1:开始索引为0,结束索引为2,取字符串的第1和第2个字符
    print(id_card[0:2])
    
    # 方法2:开始索引为0可以不写
    print(id_card[:2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【终端输出】

    53
    53
    
    • 1
    • 2

    【练习2】

    取出身份证号码中的出生年月日。

    在这里插入图片描述

    # 将身份证号码赋值给变量id_card 
    id_card = "533001199901013029"
    
    # 方法1:开始索引为6,结束索引为14
    print(id_card[6:14])
    
    # 方法1:开始索引为-12,结束索引为-4
    print(id_card[-12:-4])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    【终端输出】

    19990101
    19990101
    
    • 1
    • 2

    6. 总结

    在这里插入图片描述

    【取值技巧】

    前加1,后不变

    前加1,后不变

    前加1,后不变

    【例如】

    【0:2】表示取第1个到第2个字符。

    【1:5】表示取第2个到第5个字符。

    在这里插入图片描述

  • 相关阅读:
    查有梁:天上有颗行星 名叫落下闳星
    03 野火imxull开发板添加 正点原子lcd 支持
    火山引擎DataLeap的数据血缘用例与设计概述
    Ubuntu 22.04.6 | QEMU KVM 安装 macOS虚拟机
    Django(6)路由
    【mysql篇-进阶篇】锁
    unity之C#中级开发
    C++内存管理和模板
    【畅购商城】订单模块之收货人列表
    2021-arxiv-Prefix-Tuning- Optimizing Continuous Prompts for Generation
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/126634283