python中 s是什么意思_python中字符串 s[ : -1]是什么意思?

这是字符串切片的意思。与列表和元组一样,字符串也是可迭代的,字符串可以粗略看作是字符列表。所以字符串也支持索引查找字符串中的每个字符,字符串也支持切片。

切片(slicing)可将一个可迭代对象中元素的子集,创建为一个新的可迭代对象。切片的语法是[ 可迭代对象 ] [ [ 起始索引:结束索引 ] ]。起始索引(start index)是开始切片的索引,结束索引(end index)是结束索引的位置。

关于切片,你可以在 Python 文档中找到其定义。路径是,documentation -- Indices and tables -- Glossary。同时slice()也是一个内置的函数。Python 官方文档术语表--切片Python 官方文档 Built-in Functions -- slice()

切片中的索引只能是整数,不能是浮点值。不然将导致 TypeError 错误。其实切片是支持负索引的,即:可用来从右向左查找,可迭代对象中元素的索引(必须是一个负数)。整数值 −1 指的是 列表中的最后一个索引,−2 指的是列表中倒数第二个索引,以此类推。如下图:列表索引可用负数表示,图片来自 GeeksforGeeks 网站的文章《String Slicing in Python》中的配图

切片时包含起始索引位置的元素,但不包括结束索引位置的元素,即[起始索引,结束索引)。作为快捷方法,你可以省略切片中冒号两边的一个索引或两个索引。省略第一个索引相当于使用 0,或列表的开始。省略第二个索引相当于使用列表的长度,意味着切片直至列表的末尾。

回到题主所提问题,s[ : -1]冒号左边的索引省略了 ,即从 0 开始,冒号右边的索引是 -1,那么就是指列表中的最后一个索引,由于切片不包括结束索引位置的元素,假设变量s的值为ASTRING,那么s[ : -1]的结果就是ASTRIN。也等价于s[0:len(s) - 1]或s[:len(s) - 1]。

s = 'ASTRING'

s[:-1] # 'ASTRIN'

s[:len(s) - 1] # 'ASTRIN'

s[0:len(s) - 1] # 'ASTRIN'Python 字符串切片 s[ : -1]

以上参考 Python 官方文档、GeeksforGeeks 网站的文章《String Slicing in Python》;Python 图书《Python编程快速上手 让繁琐工作自动化》中的第 4 章 列表、第 6 章 字符串操作,和 Python 图书《Python编程无师自通 专业程序员的养成》第 6 章 字符串操作。

补充!!!

为了显得不太啰嗦,在这里只回答了问题本身,把问题中没有涉及到的 Python 切片知识点以文章形式发布在知乎专栏。当然,童叟无欺,也有恰饭的成分的,但补充完善了很多:陈哲:知乎问答之 Python 切片整理​zhuanlan.zhihu.comv2-f79d9def60451d68e48069dbe49e407d_180x120.jpg

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值