Объект array.array
имеет меньший объем памяти, чем объект list
в Python.По-прежнему ли эффективно использование памяти при создании array.array
, как показано ниже?
from array import array
array('l', [1, 2, 3, 4, 5])
Мы все еще создаем объект списка (в качестве значения аргумента) для создания этого массива.Разве это не делает массив бесполезным?
Обновление : похоже, мне следует пересмотреть утверждение о том, что массивы занимают меньше места, чем списки.Кажется, что их поведение отличается в разных версиях Python:
Python 3.5.2
>>> import array, sys
>>> mylist = [1, 2, 3]
>>> myarray = array.array('i', [1, 2, 3])
>>> sys.getsizeof(mylist)
44
>>> sys.getsizeof(myarray)
44
Python 3.6.3
>>> import array, sys
>>> mylist = [1, 2, 3]
>>> myarray = array.array('i', [1, 2, 3])
>>> sys.getsizeof(mylist)
88
>>> sys.getsizeof(myarray)
76
Тем не менее, мой оригинальный вопрос все еще остается (для Python 3.6).myarray
использовал список для построения.Как использование массива более эффективно для памяти?