我有以下类型的大型python字典:

bbox = {'0': [a, b, c, l, m],
       '1': [d, e],
       '2': [f, g],
       '3': [h],
       '4': [],
       '5': [i, j, k]}

我想将每个列表中相同索引处的元素分组在一起.而忽略空位置.

output= [[a, d, f, h, i], 
         [b, e, g, j],
         [c, k],
         [l],
         [m]
        ]

字典很大,共有300个元素,每个值列表中的元素数未知.

谢谢

推荐答案

使用defaultdict和 skip

bbox = {'0': ['a', 'b', 'c', 'l', 'm'], '1': ['d', 'e'], '2': ['f', 'g'],
        '3': ['h'], '4': [], '5': ['i', 'j', 'k']}

# from collections import defaultdict
result = defaultdict(list)
for values in bbox.values():
    for i, v in enumerate(values):
        result[i].append(v)

final = list(result.values())
print(final)
# [['a', 'd', 'f', 'h', 'i'], ['b', 'e', 'g', 'j'], ['c', 'k'], ['l'], ['m']]

Python相关问答推荐

将两个收件箱相连导致索引的列标题消失

Django序列化器没有验证或保存数据

如何才能将每个组比上一组增加N %?

仅对matplotlib的条标签中的一个条标签应用不同的格式

如何在Python中按组应用简单的线性回归?

为什么基于条件的过滤会导致pandas中的空数据框架?

更改Seaborn条形图中的x轴日期时间限制

从管道将Python应用程序部署到Azure Web应用程序,不包括需求包

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

根据给定日期的状态过滤查询集

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

如何访问所有文件,例如环境变量

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

OR—Tools CP SAT条件约束

OR—Tools中CP—SAT求解器的IntVar设置值

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

如何启动下载并在不击中磁盘的情况下呈现响应?

从Windows Python脚本在WSL上运行Linux应用程序