python切片问题?

2024年12月04日 23:30
有3个网友回答
网友(1):

题主你好,

字符串切片, 通常情况下有这么几种情况:

    a. 第1种情况, 起始索引和结束索引都未省略时, 得到的结果用我的话说是: 包前不包后, 这一点通过题主的问题可以得知,是知道这一点的.

        举例:  a = '01234'     a[2:4]的值为'23';

    b.第2种情况,起始索引省略, 结束索引未省略, 此时起始索引默认值为0.

        举例来说: a = '012345' a[:2]等价于a[0:2],按照包前不包后的原则, 最后的结果: '01'

    c.第3种情况,起始索引未省略, 结束索引省略, 此时结束索引默认值为被分片字符串的长度.

        举例来说: a = '01234'  a[2:]等价于a[2:len(a)]也就是a[2:5], 还是按照包前不包后的原则,最后的结果: '234'

    d.第4种情况, 起始索引和结束索引都省略, 则根据b和c所说的, 起始索引默认为0,结束索引默认为字符串的长度len(字符串).

        举例来说: a  = '01234'    a[:]等价于a[0:len(a)],也就是a[0:5], 还是按照包前不包后的原则, 最后得到结果: '01234'

--------

上面b,c情况的依据:

    上面翻译过来是: 第一个索引如果被省略, 则默认值为0;

                               第二个索引如果被省略, 则默认值为被分片字符串的长度;

----------------

上面所说为分片索引也可以是负数, 负数是从右向左数, 与正数分片索引不同的是, 负数的分片索引起始值为-1, 正数的分片索引起始值为0.

    举例来说中: a = '01234', a[0:-1], 因为-1是字符串最后一个字符的索引, 再根据上面所说的包前不包后原则, 结果就是去掉最后一个字符,剩下的内容: '0123'

希望可以帮到题主, 欢迎追问.

网友(2):

不指定stop参数的话默认是这个字符串的长度,相当于 'python'[0:6]。'python'[0:5]的结果才是'pytho'

网友(3):

n’[0:] 输出'python' 输出不应该是‘pytho’