Python 修改字符串

Python 修改字符串

在Python中,字符串(str类的对象)是不可变类型的。不可变对象是指在内存中创建后无法在原地修改的对象。因此,与列表不同,序列中的任何字符都不能被覆盖,也不能插入或追加字符,除非我们使用某些返回新字符串对象的字符串方法。

然而,我们可以使用以下其中一种方法来绕过修改字符串的限制。

将字符串转换为列表

由于字符串和列表对象都是序列,它们是可相互转换的。因此,如果我们将一个字符串对象转换为一个列表,通过insert()、append()或remove()方法修改该列表,然后再将列表转换回字符串,即可得到修改后的版本。

我们有一个名为s1的字符串变量,其值为WORD。使用内置函数list(),让我们将其转换为一个列表对象l1,并在索引3处插入一个字符L。然后我们使用str类中的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

使用数组模块

要修改一个字符串,可以构造一个数组对象。Python标准库包含数组模块。我们可以从一个字符串变量中创建一个Unicode类型的数组。

import array as ar
s1="WORD"
sar=ar.array('u', s1)

数组中的项具有以零为基准的索引。因此,我们可以执行数组操作,如追加、插入、删除等。让我们在字符D之前插入L。

sar.insert(3,"L")

现在,通过tounicode()方法的帮助,获取修改后的字符串

import array as ar

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

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对象的行为类似于文件对象。因此,我们可以对其执行读写操作。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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程