Как перебрать массив и убрать повторяющиеся элементы?

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Есть массив [('a', 'd', 'z'), ('b', 'e ', 'k', 'l'), ('b', 'e', 'm', 'n'), ('c', 'f', 'g', 'h')]
Нужно перебрать его и получить в итоге: [('a', 'd', 'z'), ('b', 'e ', 'k', 'l', 'm', 'n'), ('c', 'f', 'g', 'h')]
С помощью Counter() можно определить кол-во повторяющихся элементов, но как дальше реализовать замену в списках
т.е. нужна функция, которая перебирает массив и повторяющиеся элементы в одном списке оставляет, в остальных удаляет и объединяет все в одно
 
Последнее редактирование:
  • Мне нравится
Реакции: Student

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Есть массив [('a', 'd', 'z'), ('b', 'e ', 'k', 'l'), ('b', 'e', 'm', 'n'), ('c', 'f', 'g', 'h')]
Нужно перебрать его и получить в итоге: [('a', 'd', 'z'), ('b', 'e ', 'k', 'l', 'm', 'n'), ('c', 'f', 'g', 'h')]
С помощью Counter() можно определить кол-во повторяющихся элементов, но как дальше реализовать замену в списках
т.е. нужна функция, которая перебирает массив и повторяющиеся элементы в одном списке оставляет, в остальных удаляет и объединяет все в одно
Можно вот так например:
Python:
d = [('a', 'd', 'z'), ('b', 'e', 'k', 'l'), ('b', 'e', 'm', 'n'), ('c', 'f', 'g', 'h')]
d = [d[0], tuple(sorted(set(d[1] + d[2]))), d[3]]
print(d)
 
  • Мне нравится
Реакции: Student

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Можно вот так например:
Python:
d = [('a', 'd', 'z'), ('b', 'e', 'k', 'l'), ('b', 'e', 'm', 'n'), ('c', 'f', 'g', 'h')]
d = [d[0], tuple(sorted(set(d[1] + d[2]))), d[3]]
print(d)
Да, так-то, можно, конечно, но это очень грубое решение)
Нужна функция, которая перебирает массив и повторяющиеся элементы в одном списке оставляет, в остальных удаляет и объединяет списки с ранее одинаковыми данными в одно
 

Форум IT Специалистов