Как преобразовать список списков в набор
Три елемента неодинаковые в сумме должны давать ноль и записываються как список в список и мне нужно чтобы эти наборы из слагаемых с помощью сэта были уникальными.Но я не против узнать о других методах проверки списка списков на уникальность.Т.е. (1,0,-1)и (0,1,-1)не должен попасть в результат
num=[-1,0,1,2,-1,-4]
num1=[]
num2=[]
for i in range(len(num)):
for j in range(len(num)):
for k in range(len(num)):
if i!=j and j!=k and i!=k :
if num[i]+num[j]+num[k]==0 and i<j<k:
num1.clear()
num1.append(num[i])
num1.append(num[j])
num1.append(num[k])
num2.append(list(num1))
num2=set(num2)
print(num2)
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Можно просто отсортировать каждый список и преобразовать в кортеж для возможности последующего создания сета
num = [-1, 0, 1, 2, -1, -4]
num1 = []
num2 = []
for i in range(len(num)):
for j in range(len(num)):
for k in range(len(num)):
if i != j and j != k and i != k:
if num[i] + num[j] + num[k] == 0 and i < j < k:
num2.append(tuple(sorted([num[i], num[j], num[k]])))
num2 = set(num2)
print(num2)
{(-1, 0, 1), (-1, -1, 2)}