如何在array.array中分配新元素

时间:2013-01-28 19:50:26

标签: python

当我尝试从array.array模块分配数组时,如下所示:

a = array('f')

a[0] = 2.2

我将数组赋值超出范围,所以基本上我必须在第一个语句本身中分配一些虚拟值和大小,如a = array('f',[0]*20)。是吗?

2 个答案:

答案 0 :(得分:0)

不一定 - 您还可以使用append添加元素:

a.append(2)
print a
# array('f', [2.0])

extend

a.extend([1, 2, 3, 4])
print a
# array('f', [2.0, 1.0, 2.0, 3.0, 4.0])

因此它的工作方式与普通的Python列表非常相似。

答案 1 :(得分:0)

list也会发生这种情况:

>>> L = []
>>> L[0] = 'a'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

基本上[]语法要求索引有效。它不能用于添加元素。

array.array类支持大多数list方法,您可以在创建后使用这些方法添加元素。