如何在 Python 中就地修改字符串?


不幸的是,您不能就地修改字符串,因为字符串是不可变的。只需从您想要从中收集的几个部分创建一个新字符串即可。但是,如果您仍然需要一个能够就地修改 Unicode 数据的对象,则应使用

  • io.StringIO 对象
  • Array 模块

让我们看看上面讨论的内容 -

返回包含缓冲区全部内容的字符串

示例

在此示例中,我们将返回包含缓冲区全部内容的字符串。我们有一个文本流 StringIO -

import io myStr = "Hello, How are you?" print("String = ",myStr) # StringIO is a text stream using an in-memory text buffer strIO = io.StringIO(myStr) # The getvalue() returns a string containing the entire contents of the buffer print(strIO.getvalue())

输出

String = Hello, How are you?
Hello, How are you?

现在,让我们更改流位置,写入新内容并显示

更改流位置并写入新字符串

示例

我们将看到另一个示例,并使用 seek() 方法更改流位置。使用 write() 方法将在相同位置写入新字符串 -

import io myStr = "Hello, How are you?" # StringIO is a text stream using an in-memory text buffer strIO = io.StringIO(myStr) # The getvalue() returns a string containing the entire contents of the buffer print("String = ",strIO.getvalue()) # Change the stream position using seek() strIO.seek(7) # Write at the same position strIO.write("How's life?") # Returning the final string print("Final String = ",strIO.getvalue())

输出

String = Hello, How are you?
Final String = Hello, How's life??

创建数组并将其转换为 Unicode 字符串

示例

在此示例中,使用 array() 创建数组,然后使用 tounicode() 方法将其转换为 Unicode 字符串 -

import array # Create a String myStr = "Hello, How are you?" # Array arr = array.array('u',myStr) print(arr) # Modifying the array arr[0] = 'm' # Displaying the array print(arr) # convert an array to a unicode string using tounicode print(arr.tounicode())

输出

array('u', 'Hello, How are you?')
array('u', 'mello, How are you?')
mello, How are you?

更新于: 2022-09-16

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告