Как удалить повторяющиеся значения (координаты) в списке

Я хотел бы спросить, как удалить дубликаты в этом типе списка

ppoint=[[1,2],[1,2],[3,4],[5,6],[7,3],[3,4],[5,6]]

Я пробовал set (), но все равно выдает ошибку: нехешируемый список

ppoint=[[1,2],[1,2],[3,4],[5,6],[7,3],[3,4],[5,6]]
fpoint=list(set(ppoint))
print (fpoint)

я хочу получить

[[1,2],[3,4],[5,6],[7,3]

Я думаю, что set () работает только с идексами с одним значением, есть ли альтернативный способ для этого?


person LOURD    schedule 20.11.2018    source источник


Ответы (2)


Вы можете сделать это,

In [9]: list(set(map(tuple,ppoint)))
Out[9]: [(1, 2), (5, 6), (3, 4), (7, 3)]
person Rahul K P    schedule 20.11.2018

Вы могли бы просто использовать инструкцию if? Но если вы посмотрите на модуль collections, я уверен, что это будет более легкое решение.

Оператор if может выглядеть так:

for coords in ppoint:
    if coords not in fpoint:
        newlist.append(coords)
person Adam    schedule 20.11.2018