Python 删除列表列表中的重复列表

Python 删除列表列表中的重复列表,python,list,Python,List,我有一个列表,我想删除列表中重复的项目 my_list= [[[2, 5, 71.1], [1, 3, 70.0]], [[2, 5, 71.1], [1, 3, 70.0]], [[2, 5, 71.1], [1, 3, 70.0]], [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]], [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]], [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.

我有一个列表,我想删除列表中重复的项目

my_list=
[[[2, 5, 71.1], [1, 3, 70.0]],
[[2, 5, 71.1], [1, 3, 70.0]],
[[2, 5, 71.1], [1, 3, 70.0]],
[[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
[[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
[[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
[[10, 12, 80.0]],
[[14, 16, 80.0], [13, 20, 81.0]],
[[14, 16, 80.0], [13, 20, 81.0]],
[[22, 24, 80.0]],
[[26, 28, 80.0], [25, 40, 80.0]],
[[26, 28, 80.0], [25, 40, 80.0]],
[[40, 42, 80.0], [40, 41, 80.0]],
[[40, 42, 80.0], [40, 41, 80.0]],
[[44, 45, 80.0]]]

output_wanted=
 [[[2, 5, 71.1], [1, 3, 70.0]],
 [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
 [[10, 12, 80.0]],
 [[14, 16, 80.0], [13, 20, 81.0]],
 [[22, 24, 80.0]],
 [[26, 28, 80.0], [25, 40, 80.0]],
 [[40, 42, 80.0], [40, 41, 80.0]],
 [[44, 45, 80.0]]]

我需要像set函数这样的函数,它可以快速完成这项工作。但是我不能在这种情况下使用set函数。有办法吗?

这是因为
list
不可散列。 在应用
set()
之前,您需要在
元组中转换
列表的元素(可散列)

使用您的新数据更新:

>>> [list(list(y) for y in el) 
        for el in set([tuple(tuple(x) for x in el) for el in my_list])]

[[[26, 28, 80.0], [25, 40, 80.0]],
 [[10, 12, 80.0]],
 [[40, 42, 80.0], [40, 41, 80.0]],
 [[44, 45, 80.0]],
 [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
 [[22, 24, 80.0]],
 [[14, 16, 80.0], [13, 20, 81.0]],
 [[2, 5, 71.1], [1, 3, 70.0]]]

谢谢你的回答。当我粘贴在问题文本中时,如何更改此代码以处理真实数据?实际上,您有一个列表列表,并且不清楚如何删除结构上的重复项(例如,如果
[5,8,80.0]
出现在两个不同的子列表中,您将其保存在哪个子列表中?)
>>> [list(list(y) for y in el) 
        for el in set([tuple(tuple(x) for x in el) for el in my_list])]

[[[26, 28, 80.0], [25, 40, 80.0]],
 [[10, 12, 80.0]],
 [[40, 42, 80.0], [40, 41, 80.0]],
 [[44, 45, 80.0]],
 [[5, 10, 80.0], [6, 9, 80.0], [5, 8, 80.0]],
 [[22, 24, 80.0]],
 [[14, 16, 80.0], [13, 20, 81.0]],
 [[2, 5, 71.1], [1, 3, 70.0]]]