Python:使用列表理解的非均匀数组

时间:2017-05-05 18:27:04

标签: python arrays list syntax list-comprehension

我想使用具有可变大小子阵列的列表推理来初始化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方式来做这个!

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的问题 - 正确的语法是:

arr = [[random.random() for b in range(dim[a])] for a in range(len(dim))]