re.sub() 如何改变不可变的 Python 字符串?
How can re.sub() mutate immutable Python strings?
这里,string flight_details
string 改变了,但它的 id 没有改变,下面是代码和它的输出:
import re
flight_details = "Flight Savana Airlines a2134"
print(id(flight_details))
print(re.sub(r"Flight", r"Plane", flight_details))
print(id(flight_details))
print(re.sub(r"Plane", r"Akash", flight_details))
print(id(flight_details))
输出:
27264016
Plane Savana Airlines a2134
27264016
Flight Savana Airlines a2134
27264016
id(flight_details)
returns 调用后的值相同 re.sub
因为
re.sub
不会更改您传递给它的字符串的值 (flight_details
)。它 returns 一个新字符串。
例如:
import re
flight_details = "Flight Savana Airlines a2134"
print(flight_details)
print(id(flight_details))
re.sub(r"Flight", r"Plane", flight_details)
print(flight_details)
print(id(flight_details))
flight_details = re.sub(r"Flight", r"Plane", flight_details)
print(flight_details)
print(id(flight_details))
输出:
Flight Savana Airlines a2134
1442959741216
Flight Savana Airlines a2134
1442959741216
Plane Savana Airlines a2134
1442959741456
这里,string flight_details
string 改变了,但它的 id 没有改变,下面是代码和它的输出:
import re
flight_details = "Flight Savana Airlines a2134"
print(id(flight_details))
print(re.sub(r"Flight", r"Plane", flight_details))
print(id(flight_details))
print(re.sub(r"Plane", r"Akash", flight_details))
print(id(flight_details))
输出:
27264016
Plane Savana Airlines a2134
27264016
Flight Savana Airlines a2134
27264016
id(flight_details)
returns 调用后的值相同 re.sub
因为
re.sub
不会更改您传递给它的字符串的值 (flight_details
)。它 returns 一个新字符串。
例如:
import re
flight_details = "Flight Savana Airlines a2134"
print(flight_details)
print(id(flight_details))
re.sub(r"Flight", r"Plane", flight_details)
print(flight_details)
print(id(flight_details))
flight_details = re.sub(r"Flight", r"Plane", flight_details)
print(flight_details)
print(id(flight_details))
输出:
Flight Savana Airlines a2134
1442959741216
Flight Savana Airlines a2134
1442959741216
Plane Savana Airlines a2134
1442959741456