Как удалить элементы из списка с одинаковым окончанием?

Допустим есть список:

l1 = ['Ивановы', 'Петровы', 'Сидоровы', 'Груши', 'Яблоки', 'Стол', 'Машина', 'Лампа', '940345']

мне необходимо удалить все элементы с одинаковым окончанием (например элементы с одинаковыми символами [-2:]), как это наиболее эффективно и лаконично реализовать?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Перефразирую - нужно удалить из списка все элементы, для которых существует хотя бы один другой элемент с совпадающими N последними символами. Так?
Используй collections.Counter.
l1 = ['Ивановы', 'Петровы', 'Сидоровы', 'Груши', 'Яблоки', 'Стол', 'Машина', 'Лампа', '940345']
N = 2
suffixes = collections.Counter( item[-N:] for item in l1 )
l2 = list( filter( lambda item: suffixes[item[-N:]] <= 1, l1 ) )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы