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

相关推荐
三水不滴2 小时前
有 HTTP 了为什么还要有 RPC?
经验分享·笔记·网络协议·计算机网络·http·rpc
一晌小贪欢2 小时前
Python 爬虫进阶:如何利用反射机制破解常见反爬策略
开发语言·爬虫·python·python爬虫·数据爬虫·爬虫python
躺平大鹅3 小时前
5个实用Python小脚本,新手也能轻松实现(附完整代码)
python
三块可乐两块冰3 小时前
【第二十九周】机器学习笔记三十
笔记
yukai080083 小时前
【最后203篇系列】039 JWT使用
python
独好紫罗兰3 小时前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
Dfreedom.3 小时前
图像直方图完全解析:从原理到实战应用
图像处理·python·opencv·直方图·直方图均衡化
听麟3 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
铉铉这波能秀3 小时前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
怒放吧德德4 小时前
Python3基础:基础实战巩固,从“会用”到“活用”
后端·python