【问题标题】:Converting a dictionary of dictionaries to a List of dictionaries将字典字典转换为字典列表
【发布时间】:2018-08-21 06:13:38
【问题描述】:
我有一本字典。有没有办法将其转换为字典列表?
如果不是,那么 filter() 方法是如何用于过滤字典中的数据的?
【问题讨论】:
标签:
python
list
dictionary
【解决方案1】:
列表理解应该可以完成这项工作,不需要filter()。
>>> dic_of_dics = {1: {"a": "A"}, 2: {"b": "B"}, 3: {"c": "C"}}
>>> list_of_dics = [value for value in dic_of_dics.values()]
>>>list_of_dics
[{'a': 'A'}, {'b': 'B'}, {'c': 'C'}]
【解决方案2】:
仅提及在下一级字典中保持与“id”相关联的第一级“key”的解决方案。
改写它“将字典字典转换为字典列表
把钥匙放在里面”。
>>> dic_of_dics = {1: {"a": "A"}, 2: {"b": "B"}, 3: {"c": "C"}}
>>> [(lambda d: d.update(id=key) or d)(val) for (key, val) in dic_of_dics.items()]
[{'a': 'A', 'id': 1}, {'b': 'B', 'id': 2}, {'c': 'C', 'id': 3}]
【解决方案3】:
我知道这个问题有点老了,但以防万一有人需要我正在寻找的解决方案:
如果您想保留外部 dict 的键而不将它们作为内部 dict 中的值,以下代码为每个内部 dict 生成一个元组列表 (key, dict)。
>>> dic_of_dics = {1: {"a": "A"}, 2: {"b": "B"}, 3: {"c": "C"}}
>>> [(k,v) for k, v in dic_of_dics.items()]
[(1, {'a': 'A'}), (2, {'b': 'B'}), (3, {'c': 'C'})]
我用它通过add_nodes_from() 函数从to_dict('index') 函数从pandas 生成的字典中定义了一个networkx 图表,它就像一个魅力。