python - 如何将数组中的数字存储在 block 中并创建另一个数组或列表?

标签 python arrays list loops

<分区>

我有两个数组 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 中的数字组/ block 存储到 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,所以它最终只得到最后一次迭代的分配。

您应该附加到它,而不是分配它。

start = 0
for j in x:
    h.append(y[start:start+j])
    start += j

关于python - 如何将数组中的数字存储在 block 中并创建另一个数组或列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68093933/

相关文章:

validation - 使用 VBA 在 Excel 表中添加验证列表时出现问题

python - 如何使用Python列出S3子目录中的文件

python - psql - 如何在不删除表的情况下刷新数据库内容

javascript - 存储字母表中每个字母在字符串中所需位置出现的次数

C:当我尝试将其中的很多东西分组时,指向指针问题的指针

python - 编辑列表列表中的字符串

python - 'using a dict on a Series for aggregation' 的替代方案是什么

python - 对于多个Python版本,我应该使用系统还是单独的pipenv?

c - C 中是否有查找子字符串重叠的函数?

arrays - 如何将整数数组映射为字典值的键