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