Python笔记|字符串合并、切片、索引

一、合并

字符串可以用 + 合并(粘到一起),也可以用 * 重复:

>>> 3 * 'un' + 'ium'
'unununium'

相邻的两个或多个字符串字面值(引号标注的字符)会自动合并:

>>> 'Py' 'thon'
'Python'

拼接分隔开的长字符串时,这个功能特别实用:
>>> text = ('Put several strings within parentheses ' 'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'

这项功能只能用于两个字面值,不能用于变量或表达式。
合并多个变量,或合并变量与字面值,要用 +

>>> prefix = 'Py'
>>> prefix + 'thon'
'Python'

二、索引

字符串支持 索引(下标访问),第一个字符的索引是 0。单字符没有专用的类型,就是长度为一的字符串:

>>> word = 'Python'
>>> word[0]
P
>>> word[5]
n

索引还支持负数,用负数索引时,从右边开始计数:

>>>** word[-1]
n
>>> word[-2]
o
>>> word[-6]
P

-0 和 0 一样,因此,负数索引从 -1 开始。

三、切片

字符串还支持切片。索引可以提取单个字符,切片则提取子字符串。

>>> word[0:2] #下标0和1
Py
>>>** word[2:5] # 下标 2 (包括) 到下标 5 (不包括)
tho

  • 切片省略开始索引时,默认值为 0,省略结束索引时,默认为到字符串的结尾。

>>> word[:2] # 默认从0下标开始但不包括下标2
Py
>>>** word[4:] #从下标4开始到最后
on
>>> word[-2:] # 从倒数第二个下标(包括在内)到末尾的字符
on

s [:i] + s [i:] 总是等于 s

>>>** word[:2] + word[2:]
Python
>>>= word[:4] + word[4:]
Python

切片索引指向的是字符之间 ,第一个字符的左侧标为 0,最后一个字符的右侧标为 nn 是字符串长度。

对于使用非负索引的切片,如果两个索引都不越界,切片长度就是起止索引之差。例如, word[1:3] 的长度是 2。

索引越界会报错:
>>> word[42]
>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range

但切片会自动处理越界索引:
>>>** word[4:42]
on
>>> word[42:]
''

  • Python 字符串不能修改,是不可变对象。因此,为字符串中某个索引位置赋值会报错:

具有固定值的对象。不可变对象包括数字、字符串和元组。这样的对象不能被改变。如果必须存储一个不同的值,则必须创建新的对象。它们在需要常量哈希值的地方起着重要作用,例如作为字典中的键。

>>> word[0] = 'J '
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment

>>> word[2:] = 'py'
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment

要生成不同的字符串可以拼接:

>>> 'J' + word[1:]
'Jython'
>>>** word[:2] + 'py'
'Pypy'

内置函数 [len()] 可以返回字符串的长度:

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34

相关推荐
cuisidong199714 分钟前
5G学习笔记三之物理层、数据链路层、RRC层协议
笔记·学习·5g
乌恩大侠16 分钟前
5G周边知识笔记
笔记·5g
南宫理的日知录22 分钟前
99、Python并发编程:多线程的问题、临界资源以及同步机制
开发语言·python·学习·编程学习
coberup31 分钟前
django Forbidden (403)错误解决方法
python·django·403错误
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
小白学大数据1 小时前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
flashman9111 小时前
python在word中插入图片
python·microsoft·自动化·word
菜鸟的人工智能之路1 小时前
桑基图在医学数据分析中的更复杂应用示例
python·数据分析·健康医疗
咔叽布吉2 小时前
【论文阅读笔记】CamoFormer: Masked Separable Attention for Camouflaged Object Detection
论文阅读·笔记·目标检测
johnny2332 小时前
《大模型应用开发极简入门》笔记
笔记·chatgpt