Строки Python неизменны, но re.sub () может изменить его как? - PullRequest
0 голосов
/ 20 июня 2019

Здесь строка flight_details строка изменяется, но ее идентификатор не изменяется, ниже приведены код и его выходные данные:

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

1 Ответ

2 голосов
/ 20 июня 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...