如何在Python中拆分dict列表?
我有上面的如何在Python中拆分dict列表?,python,list,dictionary,Python,List,Dictionary,我有上面的dict,我想把它分成一个子列表 lis_dict = [ {item: "some item"}, {quantity: 2}, {id: 10}, {quantity: 2}, {id: 11}, {quantity: 2}, {quantity: 2}, {id: 12} ] 该问题要求按“id”将列表拆分为嵌套列表 输入: result = [ [{item: "some it
dict
,我想把它分成一个子列表
lis_dict = [
{item: "some item"},
{quantity: 2},
{id: 10},
{quantity: 2},
{id: 11},
{quantity: 2},
{quantity: 2},
{id: 12}
]
该问题要求按“id”将列表拆分为嵌套列表 输入:
result = [
[{item: "some item"}, {quantity: 2}, {id: 10}],
[{quantity: 2}, {id: 11}],
[{quantity: 2}, {quantity: 2}, {id: 12}]
]
代码:
印刷品:
result = []
s = 0
for i,j in enumerate(lis_dict):
if ("id" in j.keys()):
result.append(lis_dict[s:i+1])
s = i+1
更通用的方法可能是以下方法(您可以在子列表中添加更多词典):
这份目录的来源是什么?你能更正一下你的代码吗。您给定的词典列表不是有效的python语法。您还可以解释一下,根据什么标准来拆分列表。@sharath您是对的假设您的dict键是字符串,我不明白为什么您会对每个键值对使用一个dict。也许像
{“item”:“some item”,“quantity”:2,“id”:12}
这样的dict格式,并在lis_dict
中存储这样的dict列表,对您的情况会更好。@kalakota vishnu这就是您所期望的吗?这很有效,谢谢。如何在每个列表中添加项目。例如[[{'item':'some item'},{'quantity':2},{'id':10}],{'item':'some item'},{'item':'some item'},{'quantity':2},{'quantity':2},{'id':12}]
或类似的[[{'item''item':'some item','id':2','id':10}],{'item':'some item','id':2','id:'11}][{'item':'some item','quantity':2,'id':12}]
result = []
s = 0
for 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}]]