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

2024-10-02 16:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

这里,字符串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

Tags: 字符串代码importreiddetailsflightprint
1条回答
网友
1楼 · 发布于 2024-10-02 16:33:46

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

相关问题 更多 >