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

相关推荐

  1. m2_python字符串-索引切片

    2024-03-18 04:40:01       9 阅读
  2. python字符切片的规则

    2024-03-18 04:40:01       20 阅读
  3. python学习笔记 -- 字符串

    2024-03-18 04:40:01       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 04:40:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 04:40:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 04:40:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 04:40:01       20 阅读

热门阅读

  1. C++内联函数

    2024-03-18 04:40:01       18 阅读
  2. 客户端渲染与服务端渲染

    2024-03-18 04:40:01       23 阅读
  3. 深入了解Android垃圾回收机制

    2024-03-18 04:40:01       27 阅读