Python - 修改字串



字串修改指的是更改字串字元的過程。如果我們談論在 Python 中修改字串,我們談論的是建立一個新的字串,它是原始字串的變體。

Python 中,字串str 類的物件)是不可變型別。這裡,不可變指的是一旦在記憶體中建立,就不能修改其自身的物件。與 列表 不同,我們不能覆蓋序列中的任何字元,也不能直接向其中插入或追加字元。如果我們需要修改字串,我們將使用某些返回新字串物件的字串方法。但是,原始字串保持不變。

我們可以使用以下任何技巧作為解決方法來修改字串。

將字串轉換為列表

Python 中的字串和列表都是序列型別,它們是可相互轉換的。因此,我們可以將字串轉換為列表,使用 insert()append()remove() 等方法修改列表,然後將列表轉換回字串以獲得修改後的版本。

假設,我們有一個字串變數 s1,其值為 WORD,我們需要將其轉換為列表。對於此操作,我們可以使用 list() 內建函式並在索引 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

使用 Array 模組

要修改字串,請使用名為 array 模組 的 Python 標準庫構造一個 陣列物件。它將從字串 變數 建立一個 Unicode 型別陣列。

示例

在下面的示例中,我們使用 array 模組來修改指定的字串。

import array as ar

# initializing a string
s1="WORD"
print ("original string:", s1)

# converting it to an array
sar=ar.array('u', s1)

# inserting an element
sar.insert(3,"L")

# getting back the modified string
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
廣告