Дано: список d вида
[[ФИО1, [год, дата]], [ФИО2, [год, дата]], [ФИО1, [год, дата]], [ФИО3, [год, дата]]]
Нужно найти элементы списка с уникальными ФИО и добавить к ним все даты из элементов с такими же ФИО, а потом удалить те элементы, из которых бралась дата, чтобы получилось что-то вроде:
[[ФИО1, [год, дата, дата]], [ФИО2, [год, дата]], [ФИО3, [год, дата]]]
Код:
def diff(): i = 0 q = 0 while i < len(d): #крутим цикл для каждого ФИО while q < len(d): #крутим цикл для каждой даты if d[i][0] == d[i+q][0] and d[i][1][1] != d[i+q][1][1]: #если одинаковые имена, но разные даты d[i][1].append(d[i+q][1][1]) # добавляем дату в подсписок элемента del(d[i+q]) #удаляем строку, из которой была взята дата q = q+1 i = i+1 return d[j] #возвращаем в список обновлённую стоку j = 0 while j < len(d): d[j] = diff() j = j+1 print(d)
Знаю, что есть более простые способы, возможно через словарь, но я хотел бы разобраться именно со сравнением элементов списка.
В ветку пролистал, похожих тем не нашел, по работе и образоанию гуманитарий, так что пожалуйста не кидайтесь тапками