我来自C世界,在那里可以预先控制缓冲区的大小。例如,声明一个包含10个元素的doubles缓冲区,我们这样做:
double *buffer = calloc(10, sizeof(double));在Python中,与之完全相反的是,我们不需要通过说buffer=[]来担心缓冲区的细节和大小。
我的问题是:如果我想将python列表限制为保存任意数量的值,比如10倍,那么我们如何使用默认python列表或numpy?
发布于 2018-04-18 21:00:13
为了确保数组的大小和类型是固定的,您应该使用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')发布于 2018-04-18 20:58:43
可以从具有maxlen属性的集合中使用deque。
from collections import deque
d = deque(maxlen=2)然后,您可以添加、弹出、迭代或做任何您想要的限制列表。
https://stackoverflow.com/questions/49908780
复制相似问题