如何在Python中就地修改字符串?
很不幸,您无法原地修改字符串,因为字符串是不可变的。只需从您想要收集的几个部分创建一个新的字符串。但是,如果您仍然需要一个能够原地修改Unicode数据的对象,您应该使用
- io.StringIO对象
- 数组模块
Let’s see what we discussed above −
返回一个包含缓冲区全部内容的字符串
Example
的中文翻译为:示例
In this example, we will return a string with the entire contents of the buffer. We have a text stream StringIO −
import iomyStr = "Hello, How are you?"print("String = ",myStr)# StringIO is a text stream using an in-memory text bufferstrIO = io.StringIO(myStr)# The getvalue() returns a string containing the entire contents of the bufferprint(strIO.getvalue())
Output
String = Hello, How are you?Hello, How are you?
现在,让我们改变流的位置,写入新内容并显示
立即学习“Python免费学习笔记(深入)”;
Change the stream position and write new String
Example
的中文翻译为:示例
We will see another example and change the stream position using the seek() method. A new string will be written at the same position using the write() method −
import iomyStr = "Hello, How are you?"# StringIO is a text stream using an in-memory text bufferstrIO = io.StringIO(myStr)# The getvalue() returns a string containing the entire contents of the bufferprint("String = ",strIO.getvalue())# Change the stream position using seek()strIO.seek(7)# Write at the same positionstrIO.write("How's life?")# Returning the final stringprint("Final String = ",strIO.getvalue())
Output
String = Hello, How are you?Final String = Hello, How's life??
Create an array and convert it to Unicode string
Example
的中文翻译为:示例
在这个例子中,使用array()创建一个数组,然后使用tounicode()方法将其转换为Unicode字符串 -
import array# Create a StringmyStr = "Hello, How are you?"# Arrayarr = array.array('u',myStr)print(arr)# Modifying the arrayarr[0] = 'm'# Displaying the arrayprint(arr)# convert an array to a unicode string using tounicodeprint(arr.tounicode())
Output
array('u', 'Hello, How are you?')array('u', 'mello, How are you?')mello, How are you?