Почему Python по-разному обрабатывает два одинаковых строковых литерала при изменении внутри цикла? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Почему Python по-разному обрабатывает два одинаковых строковых литерала при изменении внутри цикла? [дубликат]

Сообщение Anonymous »

экспериментировал с обработкой строк и заметил одну путаницу.
В следующем коде два одинаковых строковых литерала ведут себя по-разному в зависимости от того, где они используются:
s1 = "harsh"
s2 = "harsh"

print(s1 is s2) # True (expected: Python interns identical literals)

Но когда я пробую что-то подобное внутри цикла с конкатенацией строк:
values = []

for i in range(3):
x = "harsh" + ""
values.append(x)

print(all(v is values[0] for v in values))

Это печатает:
False


Подробнее здесь: https://stackoverflow.com/questions/798 ... odified-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»