首页 > 解决方案 > 如何按数组分组到python中的新数组

问题描述

我有一些这样的数组:

a1 = [1,2,3,4]
a2 = [6,7,8,9]
a3 = [2,4,6,8]
a4 = ['Mon','Tues']

我想将它们分组为

result = [
          [[1,6,2,'Mon'],[2,7,4,'Mon']],
          [[3,8,6,'Tues'],[4,9,8,'Tues']]
]

这意味着如果我打印第 0 行,它将输出:

[[1,6,2,'Mon'],[2,7,4,'Mon']]

标签: pythonarrays

解决方案


a4的长度不同,但除此之外,zip是适当的功能:

>>> a1 = [1,2,3,4]
>>> a2 = [6,7,8,9]
>>> a3 = [2,4,6,8]
>>> a4 = ['Mon','Tues']
>>> a4_long = [item for item in a4 for i in range(len(a1)//len(a4))]
>>>
>>> list(list(l) for l in zip(a1,a2,a3,a4_long))
[
  [1, 6, 2, 'Mon'],
  [2, 7, 4, 'Mon'],
  [3, 8, 6, 'Tues'],
  [4, 9, 8, 'Tues']
]


推荐阅读