我有一份 list :
s=[[1,2,1],[2,2,1],[1,2,1]]
case 1:删除列表中的重复组
case 2:删除组中的重复值
预期结果:
Case 1 : [[1,2,1],[2,2,1]]
Case 2 : [[1,2],[2,1],[1,2]]
我试着使用list(set(s))
,但出现了一个错误:
不可损坏类型:"列表"
我有一份 list :
s=[[1,2,1],[2,2,1],[1,2,1]]
case 1:删除列表中的重复组
case 2:删除组中的重复值
预期结果:
Case 1 : [[1,2,1],[2,2,1]]
Case 2 : [[1,2],[2,1],[1,2]]
我试着使用list(set(s))
,但出现了一个错误:
不可损坏类型:"列表"
IIUC,
将列表转换为元组进行散列,然后在元组列表上应用一个集合以删除重复项.最后,转换回列表.
out1 = list(map(list, set(map(tuple, s))))
# [[1, 2, 1], [2, 2, 1]]
对于每个子列表,删除重复项,同时保持转换为字典键(唯一)的顺序,然后返回列表:
out2 = [list(dict.fromkeys(l)) for l in s]
# [[1, 2], [2, 1], [1, 2]]