我有一个如下所示的数组:
array1 = [[4000,"Mark",5],[4100,"George",3],[4000,"Mark",2],[4200,"Steve",4],[4100,"George",2],[4000,"Mark",1]]
我想知道如何将这个数组重新格式化为如下所示:
array2 = [[4000,"Mark",[5,2,1]],[4100,"George",[3,2]],[4200,"Steve",4]]
最佳答案
您可以使用有序字典 (collections.OrderedDict
) 将前 2 项存储为键,并将列表中的常用数字存储为值:
>>> from collections import OrderedDict
>>> d=OrderedDict()
>>> for i,j,k in array1:
... d.setdefault((i,j),[]).append(k)
...
>>> [[i,j,k] for (i,j),k in d.items()]
[[4000, 'Mark', [5, 2, 1]], [4100, 'George', [3, 2]], [4200, 'Steve', [4]]]
关于python - 根据内容对列表中的项目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310132/