Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取本身是列表中元素的数组的长度_Python_Arrays - Fatal编程技术网

Python 获取本身是列表中元素的数组的长度

Python 获取本身是列表中元素的数组的长度,python,arrays,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是一个以numpy数组为成员的列表。通过索引

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是一个以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

正如我在一篇评论中提到的,您的列表包含一个元素,它恰好是一个
数组
对象(与
列表
类似,但并不完全相同)。如果您知道列表中元素的索引,并且知道它具有长度(如
数组
),则可以通过调用其上的内置
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阵列。

您是如何创建prz的?这是一个包含1项的列表。。。数组。请尝试
print prz[0]
了解我的意思。列表包含一个元素,一个数组对象(它包含自己的元素,与它恰好所在的列表不同)。是否有一种方法可以用来访问对象中的数组?是的,
prz[0]
就是数组。如果您想要数组中的第3项,它将是
prz[0][2]
(从零开始计数…)
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