python - 根据内容对列表中的项目进行分组

标签 python list python-3.x

我有一个如下所示的数组:

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/

相关文章:

c++ - Shiboken2 和自定义 Qt 小部件

python - 是否可以使用 flask 模板在网格/表格中显示产品?

python - 使用python接口(interface)快速处理opencv图像像素

python - Apache + mod_wsgi + flask 应用程序 : "Unable to get bucket brigade for request" error in logs

python - For循环和嵌套列表问题

javascript - 2 个日期之间的日期列表(从 -> 到)

python - 带有 TensorFlow 后端的 Keras 的自定义损失函数问题

python - 是否可以在不知道 Python 实例的情况下将实例方法作为参数传递

r - 转换数据框中的列表调整化合物名称

python-3.x - 如何获得离簇中心最近的N个数据点?