目錄
描述
Python 字符串 replace()方法是字符串替換方法,它可將字符串中的部分子串替換成新的部分,並返回新字符串。
語法和參數
str.replace(old_str, new_str, count)
名稱 | 含義 | 備註 |
old_str | 要被替換掉的子串 | string,不可省略的參數 |
new_str | 使用new_str替換掉old_str | string,不可省略的參數 |
count | 最大替換次數 | int,可省略的參數 |
返回值
string,返回替換後的新字符串。若old_str在字符串中不存在,則返回原字符串。
使用示例
1. 省略count時
當count參數省略時,在字符串中匹配到的全部old_str將會被替換成new_str:
if __name__ == '__main__':
demo = "Python: python language is fun. I love python."
print("before replace():\t", demo, id(demo))
r = demo.replace("python", "Java")
print("after replace():\t", r, id(r))
運行結果:
before replace(): Python: python language is fun. I love python. 4509860464
after replace(): Python: Java language is fun. I love Java. 4509860560
2. count值存在
如果沒有省略最後的參數count,replace()方法僅將old_str替換爲new_str的次數與count值相等。即replace()替換字符串的次數取決於count值的大小。
下面的例子中,我們只替換一次:
>>> demo = "西安是陝西省的著名城市,西安也是中國古代的著名都城。"
>>> result = demo.replace("西安", "咸陽", 1)
>>> result
'咸陽是陝西省的著名城市,西安也是中國古代的著名都城。'
>>> id(demo)
4366833712
>>> id(result)
4366833840
注意事項
1. old_str與new_str相等時
當要新替換的字符串與舊字符串相等時,replace()方法不會報錯。此時如果new_str將old_str全部替換完,replace()方法返回原字符串。
>>> demo = "banana, apple, orange"
>>> result = demo.replace("apple", "apple")
>>> result
'banana, apple, orange'
>>> id(demo)
4367589288
>>> id(result)
4367589288
2. count值大於old_str出現的次數
當count值大於old_str出現的次數時,replace()方法不會報錯,此時count參數出現沒有任何意義:
>>> demo = "go.micro.compute"
>>> result = demo.replace("go", "python", 100)
>>> result
'python.micro.compute'
3. old_str在字符串中不存在
當old_str在原字符串中不存在時,使用replace()方法不會報錯,並返回原字符串:
if __name__ == '__main__':
place = "caf\u00e9"
result = place.replace("e", "~")
print("place", place)
print("result", result)
print("place id", id(place))
print("result id", id(result))
運行結果:
place café
result café
place id 4553216048
result id 4553216048
4. count值爲0
count值爲0,replace()不會做任何操作,返回原字符串。
if __name__ == '__main__':
action = "I like having coffee at starbucks"
result = action.replace("coffee", "water", 0)
print("action", action)
print("result", result)
print("action id:", id(action))
print("result id:", id(result))
運行結果:
action I like having coffee at starbucks
result I like having coffee at starbucks
action id: 4513124264
result id: 4513124264
5. count值爲負
當count值爲負,replace()方法將全部old_str替換爲new_str。這種場景下count參數作用失效:
if __name__ == '__main__':
action = "a a a b c"
result = action.replace("a", "d", -1)
print("action", action)
print("result", result)
print("action id:", id(action))
print("result id:", id(result))
運行結果:
action a a a b c
result d d d b c
action id: 4318863024
result id: 4319003120