【问题标题】:Making a dictionary where key is a list [duplicate]制作一个字典,其中键是一个列表[重复]
【发布时间】:2018-06-05 15:56:51
【问题描述】:

所以给定一个字典列表:

    my_dict= [{'a': '4', 'b': '5', 'c': '1', 'd': '3'},  
              {'a': '1', 'b': '8', 'c': '1', 'd': '2'},
              {'a': '7', 'b': '4', 'c': '1', 'd': '5'}]

和字典中的键列表,例如 ['a', 'b'] 我正在尝试为 'a' 和 'b' 各自的值制作一个字典列表,即最终产品将类似于

    new_dict = ['a':['4', '1', '7'], 'b':['5', '8', '4']]

任何帮助将不胜感激

【问题讨论】:

  • new_dict 是无效语法,因此不可能
  • 一行:new_dict = {k:[d[k] for d in my_dict] for k in list_of_keys}

标签: python


【解决方案1】:

使用collections

演示:

import collections
d = collections.defaultdict(list)
my_dict= [{'a': '4', 'b': '5', 'c': '1', 'd': '3'}, {'a': '1', 'b': '8', 'c': '1', 'd': '2'}, {'a': '7', 'b': '4', 'c': '1', 'd': '5'}]
for i in my_dict:
    for k,v in i.items():
        d[k].append(v)
print( d )

输出:

defaultdict(<type 'list'>, {'a': ['4', '1', '7'], 'c': ['1', '1', '1'], 'b': ['5', '8', '4'], 'd': ['3', '2', '5']})

【讨论】:

  • 不导入合集可以吗?
猜你喜欢
  • 2022-11-30
  • 2012-11-12
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
相关资源
最近更新 更多