我这里有一份清单:
mechs= [
{
'type_code': 'GAT',
'name': 'STRIKE',
'unit_price': 3500,
'minimum_kilo': 500,
},
{
'type_code': 'GAT',
'name': 'BLITZ',
'unit_price': 2500,
'minimum_kilo': 520,
},
{
'type_code': 'ZGMF',
'name': 'LEGEND',
'unit_price': 4500,
'minimum_kilo': 550,
},
]然后我希望输出是这样的:
mechas=
{'GAT': {
[
{'type_code': 'GAT',
'name': 'STRIKE',
'unit_price': 3500,
'minimum_kilo': 500},
{'type_code': 'GAT',
'name': 'BLITZ',
'unit_price': 2500,
'minimum_kilo': 520}
]
}
#continue to next dict...我如何使'GAT‘dict将下一个值( dict )放入dict,而不是重新分配它们?
以下是我所用的:
mechas={}
for i in mechs:
mechas[i['type_code']]=i输出结果如下:
{'GAT': {'type_code': 'GAT',
'name': 'BLITZ',
'unit_price': 2500,
'minimum_kilo': 520},
'ZGMF': {'type_code': 'ZGMF',
'name': 'LEGEND',
'unit_price': 4500,
'minimum_kilo': 550}}此输出不包括前一个值(代码GAT名称罢工),因此如何保留它而不是重新分配一个新值?
实际上,我尝试了list()、append()等等,但是我认为把它放在这里太长了,结果仍然不能让我满意。
发布于 2022-03-21 09:40:46
a={}
for i in mechs:
type_code=i.get('type_code')
if type_code not in a.keys():
a[type_code]=i
else:
c=[a.get(type_code),i]
a[type_code]=c上面的代码是如何工作的?下面是解释:
type_code的键在dict中是否可用。type_code和它的值作为我们正在读取的索引;type_code中,并将它们添加到列表中,并将索引值添加到列表中。然后用新创建的列表更改type_code的前一个值.发布于 2022-03-20 10:21:57
那应该能行
mechas={}
for i in mechs:
if i['type_code'] not in mechas:
mechas[i['type_code']]=[]
mechas[i['type_code']].append(i)https://stackoverflow.com/questions/71545449
复制相似问题