【问题标题】:Splitting dict by multi values and one of the keys [closed]通过多个值和其中一个键拆分 dict [关闭]
【发布时间】:2019-09-22 10:59:44
【问题描述】:

我有一个多值字典和唯一键,我需要为每个值有一个键

data = {
    "id": [123,456,546,311], 
    "info": ["info1","info2","info3"],       
    .
    .
    .
}

需要这个答案:

data = {
    "id": [123], 
    "id": [456], 
    "id": [546],
    "id": [311]
    "info":["info1"],
    "info":["info2"],
    "info":["info3"]       

}

谢谢,提前

【问题讨论】:

  • 你有没有尝试过?
  • 字典键名应该是唯一的
  • s/should/must/g!
  • 如果您真的需要类似的东西,您可以转换为元组列表,但我想不出您的第一个数据结构不会更好/更高效的任何用例。

标签: python dictionary multivalue


【解决方案1】:

您不能在字典中多次使用同一个键(如何通过键访问它?)。

您可以改为提取元组列表,如下所示:

exploded = [(key, value) for key, values in data.items() for value in values]

输出:

[('id', 123), ('id', 456), ('id', 546), ('id', 311), 
 ('info', 'info1'), ('info', 'info2'), ('info', 'info3')]

【讨论】:

    【解决方案2】:

    正如 Olvin Roght 在 cmets 中所说,据我所知,字典中不可能有非唯一键。在 Python 官方文档中是这样写的:

    “最好将字典视为一组键:值对,并要求键是唯一的(在一个字典中)。”

    (来源:https://docs.python.org/3/tutorial/datastructures.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2023-03-06
      • 2023-03-10
      • 2017-01-10
      • 1970-01-01
      相关资源
      最近更新 更多