我想使用具有可变大小子阵列的列表推理来初始化2D数组。数组中的所有值都应该是随机的。
请参阅下面的示例 - 请注意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 append和regular for循环,但我觉得有更多的python-y方式来做这个!
答案 0 :(得分:0)
这是一个非常简单的问题 - 正确的语法是:
arr = [[random.random() for b in range(dim[a])] for a in range(len(dim))]