如何限制python列表中的元素数量

时间:2018-04-18 20:48:01

标签: python arrays python-3.x numpy

我来自C世界,可以提前控制缓冲区的大小。例如,声明一个包含10个元素的双精度缓冲区,我们这样做:

double *buffer = calloc(10, sizeof(double));

在Python中,恰恰相反,我们不需要通过buffer=[]来解释缓冲区的细节和大小。

我的问题是:如果我想限制一个python列表来保存任意数量的值,比如说10个双精度数,那么我们如何使用默认的python列表或者numpy呢?

2 个答案:

答案 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)

然后,您可以使用限制列表追加,弹出,迭代或执行任何操作。