У меня есть список, содержащий почти дублированные элементы, за исключением числа, которое идентифицирует элемент. Я хочу удалить все дубликаты, сохранив число первого элемента, содержащего дубликат.Удалить почти дублированные элементы в списке Python при сохранении переменных
Например, я хочу, чтобы заменить l
с lnew
:
l = ['iter1apple','iter2banana','iter3carrot','iter4apple','iter5orange','iter6banana','iter7mango']
lnew = ['iter1apple','iter2banana','iter3carrot','iter5orange','iter7mango']
Я предполагаю, что это что-то делать с расщеплением числа от остальной части элемента списка, преобразования списка для установки и использования defaultdict
с элементами из раскола, но я не могу понять, как это сделать.
Любые предложения будут оценены.
Так как же вы решили удалить '' iter4apple' и iter6banana'? Общее решение было бы похоже на 'lnew = [elem for elem in l if elem not in discardable]', где 'disardable' - это набор тех, которые вы хотите удалить. – hughdbrown
@hughdbrown: 'discardable' не является предопределенным. Я пытаюсь определить, что является отбрасываемым на основе позиции элемента и является ли он дубликат элемента с более низким номером 'iter'. – user1185790