Добавление повторяющихся данных в строку - Python

Узнай цену своей работы

Формулировка задачи:

пример данных:
id, Name, mail, data1, data2, data3 1, Ivan, mail@ru, abc, 14, de 1, Ivan, mail@ru, fgh, 25, kl 1, Ivan, mail@ru, mno, 38, pq 2, Alex, mail@ru, abc, 14, d
я написал скрипт, выбирающий по первому полю уникальные строки, чтобы очистить дубликаты. Но, т.к. данные в полях дата1-3 не повторяются. надо сделать в результате:
1, Ivan, mail@ru, "abc, 14, de, fgh, 25, kl, mno, 38, pq" 2, Alex, mail@ru, "abc, 14, d"
Мой код тут: Убрать лишний перенос при сохранении .csv Как добавить новые данные в строку?

Решение задачи: «Добавление повторяющихся данных в строку»

textual
Листинг программы
  1. # только для того, чтобы строки выводились в том же порядке,
  2. # что и в входных данных, если это не важно, то использовать
  3. # обычный словарь
  4. from collections import OrderedDict
  5.  
  6. DATA = """id, Name, mail, data1, data2, data3
  7. 1, Ivan, mail@ru, abc, 14, de
  8. 1, Ivan, mail@ru, fgh, 25, kl
  9. 1, Ivan, mail@ru, mno, 38, pq
  10. 2, Alex, mail@ru, abc, 14, d"""
  11.  
  12. def parse(data):
  13.      result = OrderedDict()
  14.      for row in data:
  15.          id_, name, mail, *data = map(str.strip, row.split(","))
  16.          if id_ not in result:
  17.              result[id_] = [name, mail]
  18.          result[id_].extend(data)
  19.      return result
  20.  
  21. result = parse(DATA.splitlines())
  22.  
  23. for id_, data in result.items():
  24.      print(id_, ", ".join(data))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут