此问题已在此处有答案:
Removing duplicates from a list of lists(16个答案)
5天前关闭。
我有一个列表列表,如下所示:
lst = [[5, [1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0], 0.391304347826087, 870.6534368919102, 11650.353534277081, 7620.331760518431, '11101101110011001011010'], [3, [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1], 0.7391304347826086, 369.9004500109476, 4096.179541538357, 3076.797424081743, '10000000000011001000101'], [5, [1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0], 0.391304347826087, 870.6534368919102, 11650.353534277081, 7620.331760518431, '11101101110011001011010']]
我希望删除lst中的重复列表,对于本例,它将是[5,[1,1,1,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0],0.391304347826087,870.6534368919102,11650.353534277081,7620.331760518431,'1110101101100110011010101010']中的一个。
set(lst)
但我得到了错误的不可散列类型。
1条答案
按热度按时间gj3fmq9x1#
你遇到了一个错误,因为你试图使用set()函数,它只适用于可散列数据类型。列表是可变的和不可散列的,所以你不能直接创建一组列表。相反,您可以使用不同的方法从列表列表中删除重复项。一种方法是遍历列表,检查它们是否已经被添加到新列表中: