Size: a a a

Сообщество Python Программистов

2020 September 11

T

Tuum Daemonia in Сообщество Python Программистов
Насколько эффективным по памяти будет такой способ разбиения values словаря на куски?

Словарь огромный, порядка 7к больших записей.

Может есть готовый инструмент?
Ты же не разбил на куски, а вернул кусок values
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs
l1 = [i for i in range(1000000, 1000010)]
l2 = [1 for i in range(10)]
print(gs(l1))
print(gs(l2))


Result:
192
192
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
from sys import getsizeof as gs
l1 = [i for i in range(1000000, 1000010)]
l2 = [1 for i in range(10)]
print(gs(l1))
print(gs(l2))


Result:
192
192
НО КАК ЖЕ ТАК?
источник

T

Tuum Daemonia in Сообщество Python Программистов
Потому что там указатели?
источник

T

Tuum Daemonia in Сообщество Python Программистов
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs
print(gs(10))
print(gs(2**128))


Result:
28
44
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Tuum Daemonia
Потому что там указатели?
Угадал)
источник

in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs
s = 'qwerty'
long_s = 'qwerty' * 10000
print(gs(s))
print(gs(long_s))


Result:
55
60049
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs
s = 'qwerty'
long_s = 'qwerty' * 10000
print(gs(s))
print(gs(long_s))


Result:
55
60049
Language:
py3


Source:
from sys import getsizeof as gs
s = 'qwerty'
long_s = 'qwerty' * 10000
l1 = [s]
l2 = [long_s]
print(gs(l1))
print(gs(l2))


Result:
72
72
источник

in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
from sys import getsizeof as gs
s = 'qwerty'
long_s = 'qwerty' * 10000
l1 = [s]
l2 = [long_s]
print(gs(l1))
print(gs(l2))


Result:
72
72
По факту же надо ещё считать что лежит по ссылке в списке
источник

in Сообщество Python Программистов
Или в словаре
источник

in Сообщество Python Программистов
Vadim Apenko
Удаление изменяемого объекта
А как правильно?
источник

in Сообщество Python Программистов
Ну или "что с этим не так?"
источник

in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
from sys import getsizeof as gs
s = 'qwerty'
long_s = 'qwerty' * 10000
l1 = [s]
l2 = [long_s]
print(gs(l1))
print(gs(l2))


Result:
72
72
Language:
py3


Source:
from sys import getsizeof as gs

d = {'foo': 'bar'}
long_ass_d = {f'{x}foo': {f'{y}inner foo': 'bar'*y for y in range(10)} for x in range(14000)}

print(gs(d))
print(gs(long_ass_d))


Result:
240
589928
источник

in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs

d = {'foo': 'bar'}
long_ass_d = {f'{x}foo': {f'{y}inner foo': 'bar'*y for y in range(10)} for x in range(14000)}

print(gs(d))
print(gs(long_ass_d))


Result:
240
589928
В большом словаре 14к записей с вложенным словарём
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
from sys import getsizeof as gs

d = {'foo': 'bar'}
long_ass_d = {f'{x}foo': {f'{y}inner foo': 'bar'*y for y in range(10)} for x in range(14000)}

print(gs(d))
print(gs(long_ass_d))


Result:
240
589928
количество элементов в двух словарях разное
источник

in Сообщество Python Программистов
Бензофуран Гетероцикл
количество элементов в двух словарях разное
Ну да, хз к чему я это написал сюда..
источник

in Сообщество Python Программистов
:D
источник

in Сообщество Python Программистов
И всё таки, я зря удаляю большой словарь или нет?
источник

AT

Alexander T in Сообщество Python Программистов
И всё таки, я зря удаляю большой словарь или нет?
14к это не большой
источник