python - 如何将数组中的数字存储在块中并创建另一个数组或列表?
问题描述
我有两个数组 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
每次都在循环中重新分配,所以它最终只得到最后一次迭代的分配。
您应该附加到它,而不是分配它。
start = 0
for j in x:
h.append(y[start:start+j])
start += j
推荐阅读
- swift - 在 Swift 中使用正则表达式
- angular - 部署后的角度路由问题
- angular - Observable.combineLatest 不是函数
- apache-spark - EMR Spark Cluster 设备 5000 个分区上没有剩余空间
- javascript - 来自javascript的动态按钮值?
- autocad - 我正在尝试让arcmap能够识别私人提供的轮廓
- python - 包含多个信息的行(成对调查数据分析)
- javascript - 如何在 Mark.JS 中获取词干亮点?
- sql - 如何将日期字段更改为一周的第一天 - oracle
- java - 使用 LWJGL3 生成顶点数组时出现核心转储错误