Python字符串怎么修改?

文章导读
Previous Quiz Next 字符串修改 指的是改变字符串字符的过程。如果我们在 Python 中谈论修改字符串,实际上是指创建一个原始字符串的变体的新字符串。
📋 目录
  1. 将字符串转换为列表
  2. 使用 Array 模块
  3. 使用 StringIO 类
A A

Python - 修改字符串



Previous
Quiz
Next

字符串修改 指的是改变字符串字符的过程。如果我们在 Python 中谈论修改字符串,实际上是指创建一个原始字符串的变体的新字符串。

在 Python 中,字符串(str class 的对象)是不可变类型。这里,不可变指的是对象一旦在内存中创建,就无法就地修改。与 list 不同,我们不能覆盖序列中的任何字符,也不能直接向其插入或追加字符。如果需要修改字符串,我们将使用某些返回新 string 对象的字符串方法。然而,原始字符串保持不变。

我们可以使用以下任何技巧作为变通方法来修改字符串。

将字符串转换为列表

Python 中的字符串和列表都是 sequence 类型,它们可以相互转换。因此,我们可以将字符串转换为列表,使用 insert()、append() 或 remove() 等方法修改列表,然后将列表转换回字符串以获得修改后的版本。

假设,我们有一个字符串变量 s1,其值为 WORD,我们需要将其转换为列表。为此,我们可以使用内置函数 list(),并在索引 3 处插入字符 L。然后,我们可以使用 str class 的 join() 方法连接所有字符。

示例

下面的示例实际演示了如何将字符串转换为列表。

s1="WORD"
print ("original string:", s1)
l1=list(s1)

l1.insert(3,"L")

print (l1)

s1=''.join(l1)
print ("Modified string:", s1)

它将产生以下 输出

original string: WORD
['W', 'O', 'R', 'L', 'D']
Modified string: WORLD

使用 Array 模块

要修改字符串,使用名为 array module 的 Python 标准库构造一个 array 对象。它将从字符串变量创建一个 Unicode 类型的 array。

示例

在下面的示例中,我们使用 array 模块修改指定的字符串。

import array as ar

# 初始化一个字符串
s1="WORD"
print ("original string:", s1)

# 将其转换为 array
sar=ar.array('u', s1)

# 插入一个元素
sar.insert(3,"L")

# 获取修改后的字符串
s1=sar.tounicode()
print ("Modified string:", s1)

它将产生以下 输出

original string: WORD
Modified string: WORLD

使用 StringIO 类

Python 的 io 模块定义了处理流的文件类。StringIO 类使用内存中的文本缓冲区表示文本流。从字符串获得的 StringIO 对象表现得像 File 对象。因此,我们可以对其执行读/写操作。StringIO 类的 getvalue() 方法返回一个字符串。

示例

让我们在以下程序中使用上述原理来修改字符串。

import io

s1="WORD"
print ("original string:", s1)

sio=io.StringIO(s1)
sio.seek(3)
sio.write("LD")
s1=sio.getvalue()

print ("Modified string:", s1)

它将产生以下 输出

original string: WORD
Modified string: WORLD