@tokyojack

Почему так странно выделяется память под разные типы данных?

a = ['Saint Petersburg', [1, 2, 3], (4, 5, 6), 56]
b = ['Saint Petersburg', [1, 2, 3], (4, 5, 6), 56]
print(id(a), id(b))

c = (1, 2, 3)
d = (1, 2, 3)
print(id(c), id(d))

e = {'1': 1}
f = {'1': 1}
print(id(e), id(f))

g = set([1, 2, 3])
h = set([1, 2, 3])
print(id(g), id(h))


Вопрос 1: Почему list создает 2 разных обьекта, tuple создает 1 обьект, dict создает 2 разных обьекта и set создает 2 разных обьекта ?
Вопрос 2: От чего это зависит ?
Вопрос 3: Есть ли в этом какая-нибудь закономерность или это необходимо просто запомнить ?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
c = (1, 2, 2+1)
d = (1, 2, 2+1)
print(id(c), id(d))


А вообще-то не надо гадать. В книгах надо прочесть. Например, «Изучаем Python» М.Лутц
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы