【问题标题】:Transform a multi-index into dictionary without loop [duplicate]将多索引转换为没有循环的字典[重复]
【发布时间】:2020-12-16 10:36:01
【问题描述】:

我有一个这样的多索引:

multiindex = 
[(10, 24016),
 (10, 24042),
 (10, 24130),
 (20, 33457),
 (20, 34339),
 (20, 34598),
 (20, 34754)]

我想从第一个索引的每个值中获取第二个索引中链接的其他值的列表。在我的例子中,我想要这样的东西(不是特别是字典)

{10: [24016, 24042, 24130], 20: [33457, 34339, 34598, 34754]}

我已经尝试了很多东西(比如在 dict 中转换、解压缩等),我可以通过循环来做到这一点,但由于我的多索引很大,我想避免它。

有人知道如何轻松做到这一点吗?

【问题讨论】:

  • 分享显示您的试验的代码。
  • 你是如何使用循环的?是什么让您认为它效率低下?显示您的代码,以便我们提供帮助。

标签: python multi-index


【解决方案1】:

尝试使用itertools.groupby

groups = {k: [i[1] for i in list(g)] for k,g in groupby(multiindex, lambda x: x[0])}
print(groups)

输出:

{10: [24016, 24042, 24130], 20: [33457, 34339, 34598, 34754]}

【讨论】:

    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 2018-10-29
    • 2022-01-25
    • 1970-01-01
    • 2022-10-06
    • 2021-02-14
    • 2016-12-08
    • 1970-01-01
    相关资源
    最近更新 更多