Где хранится информация в python наборах и диктах? - PullRequest
0 голосов
/ 04 марта 2020

При размещении элементов абсурдно разных размеров в наборе python (или dict) размер набора / dict одинаков. Где хранится информация и как узнать ее размер?

import sys

s1 = ""
for x in range(100000):
    s1 += str(x)

long_key_set = set()
short_key_set = set()

for i in range(10):
    # Adding a small value
    short_key_set.add(i)

    # Adding a large value
    s = s1 + str(i)
    long_key_set.add(s)

print(sys.getsizeof(long_key_set))
print(sys.getsizeof(short_key_set))

1 Ответ

0 голосов
/ 04 марта 2020

По умолчанию наименьший размер словаря / набора составляет 8 . Если вы храните только три значения, Python все равно выделит восемь элементов. При изменении размера количество сегментов увеличивается на 4x , пока мы не достигнем 50000 элементов, после чего размер увеличивается на 2x . Это дает следующие возможные размеры 8, 32, 128, 512, 2048 , 8192, 32768, 131072, 262144, ...

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