我想一次替換字符串中的字符,但不是所有的字符。例如:我怎樣才能只替換一些python字符串中的特定字符?
s = "abac"
我想與所有這些選項
"Xbac"
"abXc"
"XbXc"
我只知道,在正常s.replace()函數,將替換字符出現的所有替換的字符串。有沒有人有聰明的代碼來取代字符串中所有可能的字符選項?
我想一次替換字符串中的字符,但不是所有的字符。例如:我怎樣才能只替換一些python字符串中的特定字符?
s = "abac"
我想與所有這些選項
"Xbac"
"abXc"
"XbXc"
我只知道,在正常s.replace()函數,將替換字符出現的所有替換的字符串。有沒有人有聰明的代碼來取代字符串中所有可能的字符選項?
string.replace(s, old, new[, maxreplace])
返回字符串s的一個副本,其中所有出現的子字符串old被新的替換。如果給出可選參數maxreplace,則會替換第一個maxreplace事件。 因此,如果maxreplace=1
只有第一個字符被替換。
You can still use replace()
只能取代第一個字符的出現,而不是同時出現所有字符。
與string.replace(S,舊,新[,maxreplace])
返回字符串
s
與子old
的所有出現由new
替代副本。 如果給出可選參數maxreplace
,則會替換第一個maxreplace
事件。
所以,你的例子可以通過以下方式實現:
'abac'.replace('a','X',1).replace('a','X',1)
>>> 'XbXc'
更爲複雜的模式可以通過使用Python中re
模塊,它允許模式使用正則表達式匹配來完成,尤其是與re.sub()
。
有沒有人有聰明的代碼,將取代所有可能的 在字符串中的字符選項?
在Python中查看regular expressions。
下面是一個例子:
import re
s = "abac"
re.sub('^a', 'X', s)
# output = 'Xbac'
這將取代與a
啓動所有字符串,並把一個X
那裏。
我設法用所有不同的組合替換字符串中的所有字符。雖然代碼不是最有效的,但它做我想要的
def replaceall(s, n):
occurence = s.count(n)
alt = []
temp = s
for i in range(occurence):
temp2 = temp
for j in range(i,occurence):
temp2 = temp2.replace(n,"x",1)
alt.append(temp2)
temp = temp.replace(n,"!",1)
for i in range(len(alt)):
alt[i] = alt[i].replace("!",n)
return alt
你是指這些特定字母的任意組合嗎?這聽起來像正則表達式(https://docs.python.org/2/library/re.html)會做的伎倆,如果這是你的意思。 –
正常[替換](https://docs.python.org/3/library/stdtypes.html#str。替換)僅在您未能提供可選的第三個(計數)參數時纔會替換所有發生的事件。 – Anthon
什麼是輸入數據?字符串「abac」,還有什麼?問題不明確。 –