Python str replace()方法

目錄

描述

語法和參數

返回值

使用示例

1. 省略count時

2. count值存在

注意事項

1. old_str與new_str相等時

2. count值大於old_str出現的次數

3. old_str在字符串中不存在

4. count值爲0

5. count值爲負


 

描述

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章