python - Python中的动态数组中的字节大小不增加
问题描述
import ctypes
import sys
class DynamicArray(object):
def __init__(self):
self.n =
self.capacity = 1
self.A = self.make_array(self.capacity)
def __len__(self):
return self.n
def __getitem__(self,k):
if not 0 <= k <self.n:
return IndexError('K is out of bounds!')
return self.A[k]
def append(self, ele):
if self.n == self.capacity:
self._resize(2*self.capacity)
self.A[self.n] = ele
self.n += 1
def _resize(self,new_cap):
B = self.make_array(new_cap)
for k in range(self.n):
B[k] = self.A[k]
self.A = B
self.capacity = new_cap
def make_array(self,new_cap):
return (new_cap * ctypes.py_object)()
当我使用
arr = DynamicArray()
在插入大约 10 到 20 个数字后,字节大小保持不变。
这就是我检查数组大小的方式:
sys.getsizeof(arr)
字节大小显示为 56。
解决方案
推荐阅读
- javascript - 如何单击从 page.evaluate 返回的元素?
- java - 在 Spring MVC 上保持用户会话
- bash - 将 cURL 响应重定向到 POST 的 cURL,但不通过文件
- powershell - PowerShell多维数组问题
- java - Android:从子集合中获取字段值
- java - RestTemplate postForObject 无法映射除 String.class 之外的自定义类
- android - FirestoreRecyclerAdapter onBindViewHolder 无法正常工作
- javascript - 如何在textarea中每n个字符后换行?
- file - 如何在 ionic 4 中使用 img html 标签显示缓存目录 file:/// 中的图像文件?
- firebase - 按孩子过滤数据以供阅读 || 反应原生 || 休息API