簡體   English   中英

僅替換字符串中第一次出現的字符

[英]replacing only the first occurance of a character in string

我的目標是用另一個字符串元素替換第 0 個字符串元素。 我嘗試了下面的代碼。

s='12:15:45'

s=s.replace(s[0],'9')

print(s)

雖然第 0 個元素確實被替換,但更改也反映在第 3 個元素上。

輸出 - 92:95:45

為什么會這樣?

默認情況下,替換 function 是替換字符串中所有出現的1 您可以使用正確的語法來限制這一點,如下所示

句法

string.replace(oldvalue, newvalue, count)

如果您只想替換第一次出現,您應該使用

s=s.replace(s[0],'9',1)

使用s.replace(s[0],'9', 1)僅替換第一次出現。


str.replace(old, new, count)返回字符串的副本,其中所有出現的 substring old替換為new 如果給定了可選參數count ,則僅替換第一個count出現。

通過發生次數。

string.replace(oldvalue, newvalue, count)
  • oldvalue必需。 要搜索的字符串
  • newvalue必需。 用 count 替換舊值的字符串
  • count可選。 一個數字,指定要替換的舊值的出現次數。 默認為所有出現

s=s.replace(s[0],'9',1)

印刷)

如文檔中所述:

str.replace(old, new[, count]) - 返回字符串的副本,其中所有出現的 ZE83AED3DDF4667DEC0DAAAACB2BB3BE0BZ 舊替換為新。 如果給定了可選參數 count,則僅替換第一個 count 出現。

您沒有指定count ,因此它會替換所有出現s[0] - 在本例中為'1' 在這種特殊情況下,您可以這樣做

s = '12:15:45'
s = s.replace(s[0],'9',1)
print(s)

但它並不總是有效 - 例如,如果您只想替換s[3]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM