2011-08-17 42 views
5

定义我得到NameError: name 'array' is not defined在python错误,当我要创建的阵列,例如:NameError:名字“阵”是不是在Python

a = array([1,8,3]) 

我在做什么错?如何使用数组?

+3

你确实需要一个数组,或者你只是想要一个列表? –

+0

numpy也具有数组功能。你是这个意思吗?如果是这样,您可能需要在名称空间前缀。 –

回答

3

如果你需要一个容器来容纳了一堆东西,然后列出可能是你最好的选择:

a = [1,8,3] 

类型

dir([]) 

从Python解释器看到列出支持的方法如追加,弹出,反向和排序。 列表也支持列表理解和Python的迭代器接口:

for x in a: 
    print x 

y = [x ** 2 for x in a] 
+0

我可以插入东西列表像我为范围(10):a [i] = b? – Templar

+1

@Templar'a = [b for i in range(10)]'这会创建一个新的列表[b,b,b,b,b,b,b,b,b,b] –

+0

所以它首先表示我如果我想像那样使用它,总是必须填写一些随机的东西? – Templar

40

您需要从模块导入array方法。

from array import array

http://docs.python.org/library/array.html

+0

然后我得到这个错误TypeError:array()参数1必须是char,而不是列表 – Templar

+3

@Templar - Python中的'array'与C或Java等语言中的数组完全不同,它们受到限制,并且必须指定键入该数组将保存。您可以像使用其他语言的数组一样使用列表,但除此之外,您必须指定数组包含整数。查看文档的第一部分:http://docs.python.org/library/array.html – birryree

3

你可能不希望一个数组。尝试使用列表:

a = [1,8,3] 

Python列表在许多其他语言中的表现类似于动态数组。

+2

-1没有解决如何获得'array'的实际问题。 – Marcin

+0

接受的答案是'list'。保持优雅。 –

+0

最高投票答案实际上回答了这个问题。保持...防御性和不假思索。 – Marcin

12

对于基本的Python,你应该只使用一个list(正如其他人已经指出)。

如果你要使用NumPy的,你想一个NumPy的数组:

import numpy as np 

a = np.array([1,8,3]) 

如果你不知道NumPy的是什么,你可能只是想list