首页 > 解决方案 > 如何将两个数组组合成一个具有内部列表的列表?

问题描述

我有两个清单:

a=[0,0,0,1,1,1,1,2,2]
b=[2,5,12,2,3,8,9,4,6]

我想得到:

c=[[0,2,5,12],[1,2,3,8,9],[2,4,6]]

A 和 b 相互关联,a[i]与 相关b[i],当值a变化0为时112在 的第一个内部列表中结束c

我用 if else 语句尝试过,但失败了

如何在python中获取c?

标签: arrayspython-3.xlistnumpy

解决方案


此代码c以足够好的方式生成(提供ab始终以与示例中相同的方式进行调整):

a=[0,0,0,1,1,1,1,2,2]
b=[2,5,12,2,3,8,9,4,6]

c = []

i = 0

while i < len(a):
  d = a.count(a[i])
  c.append([a[i]] + b[i:i + d])
  i += d

print(c) # ==> [[0, 2, 5, 12], [1, 2, 3, 8, 9], [2, 4, 6]]

推荐阅读