繁体   English   中英

re.sub() 如何改变不可变的 Python 字符串?

[英]How can re.sub() mutate immutable Python strings?

这里,字符串flight_details字符串被更改但其 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)在调用re.sub后返回相同的值,因为re.sub不会更改您传递给它的字符串的值 ( flight_details )。 它返回一个新字符串。

例如:

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

请参阅: https : //docs.python.org/3/library/re.html#re.sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM