【发布时间】:2021-09-06 15:51:06
【问题描述】:
我有两个数组 x 和 y:
x = [2 3 1 1 2 5 7 3 6]
y = [0 0 4 2 4 5 8 4 5 6 7 0 5 3 2 8 1 3 1 0 4 2 4 5 4 4 5 6 7 0]
我想创建一个列表“z”,并希望将 y 中的组/数字块存储到 z 中,组的大小由 x 的值定义。
所以 z 将数字存储为
z = [[0,0],[4,2,4],[5],[8],[4,5],[6,7,0,5,3],[2,8,1,3,1,0,4],[2,4,5],[4,4,5,6,7,0]]
我试过这个循环:
h=[]
for j in x:
h=[[a] for i in range(j) for a in y[i:i+1]]
但它只存储 x 的最后一个值。 另外我不确定这个问题的标题是否适合这个问题。如果令人困惑,任何人都可以编辑。非常感谢。
【问题讨论】:
-
你需要追加到
h,而不是每次循环都重新分配。 -
这些是列表,而不是数组。
-
h=[h.append(x) for i in range(j) for x in X[i:i+1]] @Barmar 这样吗?
-
没有。
for j in x: h.append(...) -
数组是 numpy.ndarray 还是模块数组?还是您在谈论列表并仅将它们称为数组?在这种情况下,您的数字之间缺少分隔符。如果您使用 numpy,请标记问题。