如何在Python中拆分字典列表?

lis_dict = [

   {item: "some item"}, 

   {quantity: 2}, 

   {id: 10}, 

   {quantity: 2}, 

   {id: 11}, 

   {quantity: 2}, 

   {quantity: 2}, 

   {id: 12}

]

我有上面的列表dict,我想将其分成一个子列表。


result  = [

   [{item: "some item"}, {quantity: 2}, {id: 10}],

   [{quantity: 2}, {id: 11}],

   [{quantity: 2}, {quantity: 2}, {id: 12}]

]


千万里不及你
浏览 145回答 2
2回答

蝴蝶不菲

问题要求将列表按“id”拆分为嵌套列表。输入:lis_dict[{'item': 'some item'}, {'quantity': 2}, {'id': 10}, {'quantity': 2}, {'id': 11}, {'quantity': 2}, {'quantity': 2}, {'id': 12}]代码:result = []s = 0for i,j in enumerate(lis_dict):    if ("id" in j.keys()):        result.append(lis_dict[s:i+1])        s = i+1印刷:[[{'item': 'some item'}, {'quantity': 2}, {'id': 10}], [{'quantity': 2}, {'id': 11}], [{'quantity': 2}, {'quantity': 2}, {'id': 12}]]

偶然的你

更通用的方法可能如下(您可以在子列表中添加更多字典):lis_dict = [{'item': 'some item'}, {'quantity': 2}, {'id': 10}, {'quantity': 2}, {'item': 'some item'}, {'id': 11}, {'quantity': 2}, {'quantity': 2}, {'id': 12}]result = []sublist = []for d in lis_dict:    sublist.append(d)    if d.get("id"):        result.append(sublist)        sublist = []print(result)# [[{'item': 'some item'}, {'quantity': 2}, {'id': 10}], [{'quantity': 2}, # {'item': 'some item'}, {'id': 11}], [{'quantity': 2}, {'quantity': 2}, {'id': 12}]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python