@hezeri23

Как объединить одинаковые элементы списка?

Есть два списка:
labels = ['x', 'x', 'y']
data = [100, 200, 1000]

Нужно удалить одинаковые элементы из списка labels и сложить соответствующие элементы из списка data.
Т.е. после выполнения алгоритма списки должны выглядеть так:
labels = ['x', 'y']
data = [300, 1000]
  • Вопрос задан
  • 958 просмотров
Решения вопроса 1
0xD34F
@0xD34F
zipped = list(zip(labels, data))
groupedLabels = list(set(labels))
groupedData = [ sum(v for k, v in zipped if k == n) for n in groupedLabels ]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mxmwerner
new_labels = []
new_data = []
for l, d in zip(labels, data):
  if l in new_labels:
    new_data[new_labels.index(l)] += d
  else:
    new_labels.append(l)
    new_data.append(d)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы