【发布时间】:2021-12-08 12:55:02
【问题描述】:
我有一本字典:
dict1 = {
'conf1' : {'subconf11' : True, 'subconf12' : False},
'conf2' : False,
'conf3' : {'subconf31' : True, 'subconf32' : False, 'subconf33' : False},
'conf4' : 'On'
}
我想将它展平为一个元组列表,这样:
list1 = [
('conf1',('subconf11',True)),
('conf1',('subconf12',False)),
('conf2',False),
('conf3',('subconf31',True)),
('conf3',('subconf32',False)),
('conf3',('subconf33',False)),
('conf4','On')
]
我尝试了类似的方法:
primary_conf_list = list(dict1.keys())
list2 = [(i,list[dict1[i].items()]) for i in primary_conf_list]
但可以理解的是,对于那些值不是字典而是布尔值或字符串值的人来说,它会给我带来错误。例如dict1['conf2'] 和dict1['conf4']。
这是确切的错误消息:
AttributeError: 'bool' object has no attribute 'items'
请帮助我实现这一目标。
【问题讨论】:
-
您需要嵌套循环来为嵌套字典中的每个元素创建一个元组。
标签: python list dictionary flatten