Удаление дубликатов списка с учетом индексов симметрии в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Удаление дубликатов списка с учетом индексов симметрии в Python

Сообщение Anonymous »

В Python, учитывая список MyList списков El целых чисел, я хотел бы удалить дубликаты, которые эквивалентны при конкретных перестановках индексов. Генерация MyList достаточно просто, но есть много избыточности в зависимости от симметрии графика. Например, для диаграммы «D4» EL представляет следующий украшенный график:

Код: Выделить всё

                                       a
|
el = [a, b, c, d, e]         b-c―d
|
e
Два списка [1,0,4,0,0] и [0,0,4,0,1] являются дубликатами, поскольку существует одинаковое до отражения графика вокруг горизонтальной оси. В целом, списки El дубликаты, если они есть эквивалентные при любой перестановке A, B, D, E . Есть ли простой способ удаления дубликатов с учетом произвольной симметрии?

Код: Выделить всё

from itertools import product

def check_duplicate(f, li):

for l in li:
if l[2] == f[2] and sorted(l[:2] + l[3:]) == sorted(f[:2] + f[3:]):
return True

return False

mylist = [list(i) for i in product(range(5), repeat=5) if sum(i) == 5]

newlist = []
for f in my_list:
if check_duplicate(f, newlist) == False:
newlist.append(f)
Здесь TMP генерируется грубое силу, но это условие более вовлечено в мой реальный случай.
Это работает достаточно хорошо для этого конкретного примера, но немного неуклюже, и реализация труднее обобщать для более вовлеченных случаев. Есть ли способ удалить дубликаты более оптимизированным способом, в частности, который может легко реализовать удаление дубликатов, учитывая особую симметрию индексов El ?

Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Удаление дубликатов списка с учетом индексов симметрии в Python
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Найдите несколько центров симметрии в массиве
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Найдите несколько центров симметрии в массиве
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Хэш для дубликатов изображений работает не для всех дубликатов.
    Anonymous » » в форуме JAVA
    0 Ответы
    97 Просмотры
    Последнее сообщение Anonymous
  • Использование re для сопоставления цифры + любых смежных дубликатов и сохранение дубликатов, а не только цифры в качеств
    Anonymous » » в форуме Python
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»