Добавление повторяющихся данных в строку - 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
Листинг программы
# только для того, чтобы строки выводились в том же порядке, 
# что и в входных данных, если это не важно, то использовать
# обычный словарь
from collections import OrderedDict
 
DATA = """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"""
 
def parse(data):
     result = OrderedDict()
     for row in data:
         id_, name, mail, *data = map(str.strip, row.split(","))
         if id_ not in result:
             result[id_] = [name, mail]
         result[id_].extend(data)
     return result
 
result = parse(DATA.splitlines())
 
for id_, data in result.items():
     print(id_, ", ".join(data))

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


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

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

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