我有这样一份清单:
list = [{'item1': value1,
'item2': [{'tinyitem21': tinyvalue21, 'tinyitem22': tinyvalue22}]},
{'item3': [{'tinyitem31': tinyvalue31, 'tinyitem32': tinyvalue32}],
'item4': value4}]
我想要一个这样的列表:
list = [{'item1': value1,
'item2': {'tinyitem21': tinyvalue21, 'tinyitem22': tinyvalue22}},
{'item3': {'tinyitem31': tinyvalue31, 'tinyitem32': tinyvalue32},
'item4': value4}]
我编写了下面的代码来尝试解决此问题,但它不起作用:
for item in list:
for smallitem, smallvalue in item:
if type(smallvalue)=='list':
new_dict= {}
for tinyitem in smallvalue:
name = tinyitem.pop('name')
new_dict[name] = tinyitem
smallvalue=new_dict
有人能帮我吗
Python中的一行程序:
产出:
有关“如何在词典理解中使用if/else?”的信息,请参见this
您可以使用此功能(请注意,列表已在原地修改):
代码:
输出:
您也可以使用列表/听写理解:
如果嵌套列表/目录多于一个级别,则可以使用此递归函数:
用法:
下面是第一级嵌套转换的解决方案
输出:
假设索引0处
item2
的值有多个dict,则应将其视为字符串值,如下面的输出所示输出将是string而不是dict,但如果您注意到
item3
是list的单个dict,但仍然被分配为str使用一个/多个dict处理两个列表,具有更高的可读性
如果您想使用CDJB提到的综合方法,您需要在其中添加一个条件,因为如果列表大小大于1,它将自动忽略第二个索引
输出:
相关问题 更多 >
编程相关推荐