Python:使用列表理解的非均匀阵列
问题描述:
我想使用具有可变大小的子阵列的列表理解来初始化二维数组。数组中的所有值都应该是随机的。Python:使用列表理解的非均匀阵列
请参阅下面的示例 - 请注意dim
中的每个数字都指的是子数组的长度。
dim = [1,3,1] -> this would make the array:
[[.143],
[.534], [.732], [.741],
[.989]]
到目前为止,我已经试过如下:
arr = [[random.random() for b in range(b)] for a in range(len(dim))]]
但是我recieving错误NameError: name 'b' is not defined
。我错过了一些容易吗?我显然可以使用使用列表追加和常规for循环,但我觉得这样做有更多的python-y方法!
答
这是一个很简单的问题 - 正确的语法是:
arr = [[random.random() for b in range(dim[a])] for a in range(len(dim))]
'对于B范围内(B)'你有什么期望呢?你是不是指'范围(a)'? – njzk2
另外,'对于一个范围(len(nnDim))'没有做你想做的事情(不管nnDim是什么)。你可能简单地想''为一个昏暗的' – njzk2
最后给'a'一个重要的名字,用'_代替'b'来表明这个变量没有被使用:'[[random.random()for _在范围(大小)]为暗淡大小'' – njzk2