我来自C
世界,可以提前控制缓冲区的大小。例如,声明一个包含10个元素的双精度缓冲区,我们这样做:
double *buffer = calloc(10, sizeof(double));
在Python中,恰恰相反,我们不需要通过buffer=[]
来解释缓冲区的细节和大小。
我的问题是:如果我想限制一个python列表来保存任意数量的值,比如说10个双精度数,那么我们如何使用默认的python列表或者numpy
呢?
答案 0 :(得分:2)
要确保数组具有固定大小和特定类型,您应使用numpy
。即使使用非数字数据也是如此。
下面是一些例子。
import numpy as np
arr = np.zeros(10, dtype=float)
# array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]), dtype = float64
arr = np.zeros(10, dtype=int)
# array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), dtype = int32
arr = np.empty(10, dtype='<U8')
# array(['', '', '', '', '', '', '', '', '', ''],
# dtype='<U8')
答案 1 :(得分:1)
您可以使用来自具有maxlen属性的集合中的deque
。
from collections import deque
d = deque(maxlen=2)
然后,您可以使用限制列表追加,弹出,迭代或执行任何操作。