Python 如何就地修改字符串

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?

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程