获取数组的长度,该数组本身就是列表中的元素

时间:2014-09-08 23:17:57

标签: python arrays

Python新手。我认为这是一个非常基本的问题,但我找不到答案。

我正在尝试查找列表的长度,但是使用len(变量)始终返回1,而不是列表本身的大小。所以对于变量prz:

    print type(prz)
    print prz
    print len(prz)

输出:

    <type 'list'>
    [array([2, 2, 1, 0, 0, 0, 2, 2, 0, 2])]
    1

我在这里做错了什么?

编辑:我用这种方式创建了prz:

prz = []
prz.append(np.random.randint(0, 5, nsim))

谢谢!

2 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,您的列表包含一个恰好是array对象的元素(类似于list,但不完全相同)。如果您知道列表中元素的索引,并且您知道它的长度(如array),那么您可以通过调用内置的len()找到它的长度功能:

from array import array

prz = [array('i', [2, 2, 1, 0, 0, 0, 2, 2, 0, 2])]

print len(prz)     # -> 1
print len(prz[0])  # -> 10

这也适用于numpy数组。

答案 1 :(得分:0)

官方答复......

prz是一个以numpy数组为成员的列表。你通过索引prz获得数组,你也可以获得第二级索引的数组成员:

>>> import numpy as np
>>> nsim = 10
>>> prz = []
>>> prz.append(np.random.randint(0, 5, nsim))
>>> prz
[array([4, 4, 3, 3, 1, 4, 4, 1, 2, 0])]
>>> prz[0]
array([4, 4, 3, 3, 1, 4, 4, 1, 2, 0])
>>> prz[0][0]
4