【发布时间】:2017-05-05 18:27:03
【问题描述】:
我想使用带有可变大小子数组的列表推导来初始化一个二维数组。数组中的所有值都应该是随机的。
请参见下面的示例 - 请注意,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))]]
但是我收到了错误NameError: name 'b' is not defined。我错过了一些简单的事情吗?我显然可以使用 use list appending 和传统的 for 循环,但我觉得有一种更 python-y 的方式来做到这一点!
【问题讨论】:
-
for b in range(b)你希望它做什么?你不是说in range(a)吗? -
另外,
for a in range(len(nnDim))没有做你想做的事(不管 nnDim 是什么)。你可能只是想要for a in dim -
最后,给
a一个有意义的名字,用_代替b来表示变量没有被使用:[[random.random() for _ in range(size)] for size in dim]
标签: python arrays list syntax list-comprehension