Я ищу Pythonic способ решить следующую проблему. У меня есть (я думаю, что это) рабочее решение, но оно имеет сложные средства управления потоком и просто не «красиво». (В основном, решение C ++)
У меня есть список списков. Каждый список содержит несколько элементов различных типов (возможно, 10 элементов в списке). Общий порядок списков не имеет значения, но порядок элементов в любом отдельном списке важен. (т.е. я не могу это изменить).
Я хочу пометить дубликаты, добавив дополнительное поле в конец отдельного списка. Однако в этом случае список «дубликатов» - это список, который имеет равные значения в нескольких предварительно выбранных полях, но не во всех полях (нет «истинных» дубликатов).
Например: если это были исходные данные из списка из 5 пунктов, а дубликат определяется как имеющий равные значения в первом и третьем полях:
['apple', 'window', 'pear', 2, 1.55, 'banana']
['apple', 'orange', 'kiwi', 3, 1.80, 'banana']
['apple', 'envelope', 'star_fruit', 2, 1.55, 'banana']
['apple', 'orange', 'pear', 2, 0.80, 'coffee_cup']
['apple', 'orange', 'pear', 2, 3.80, 'coffee_cup']
Первый, четвертый и пятый списки будут дубликатами, и поэтому все списки должны быть обновлены следующим образом:
['apple', 'window', 'pear', 2, 1.55, 'banana', 1]
['apple', 'orange', 'kiwi', 3, 1.55, 'banana', 0]
['apple', 'envelope', 'star_fruit', 2, 1.55,'banana', 0]
['apple', 'orange', 'pear', 2, 3.80, 'coffee_cup', 2]
['apple', 'orange', 'pear', 2, 3.80, 'coffee_cup', 3]
Спасибо за любую помощь или направление. Я думаю, что это выходит за рамки книги Обучающего Python.