Я бился головой, чтобы сгруппировать последовательные элементы в словаре на основе значения.
Предположим, это мои данные:
data = {
12: {
type: 'image'
},
13: {
type: 'image'
},
1: {
type: 'audio'
},
2: {
type: 'image'
},
5: {
type: 'image'
}
}
Я хочу сгруппировать похожие элементы вместе только они идут последовательно, например:
group = {
12: {
type: 'image',
items: [12, 13]
},
1: {
type: 'audio'
},
2: {
type: 'image',
items: [2, 5]
}
}
Это то, что я пробовал:
successive = False
last_key = -1
for key, item in data.items():
if item['type'] == 'image':
if not successive: # use a new key
last_key = key
if last_key in group:
group[last_key]['items'].append(item)
else:
group[last_key] = {
'type': 'image',
'items': list()
}
group[last_key]['items'].append(item)
successive = True
else:
group[key] = item
successive = False
Но он группирует все изображения в один список. Я очень запутался, где я пропустил в своем логе c?