Код: Выделить всё
a
|
el = [a, b, c, d, e] b-c―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)
Это работает достаточно хорошо для этого конкретного примера, но немного неуклюже, и реализация труднее обобщать для более вовлеченных случаев. Есть ли способ удалить дубликаты более оптимизированным способом, в частности, который может легко реализовать удаление дубликатов, учитывая особую симметрию индексов El ?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-python