如何从列表列表中的每个列表中删除重复项

时间:2015-08-19 21:15:27

标签: python list

我想从列表列表中的每个列表中删除重复项。有没有一种有效的,pythonic方式来做到这一点?

v=[[[234,354,400,400,230,300,500]],[[2,2,24]],[[56,102,98]]]

我想删除每个列表中的所有重复项,然后对每个列表进行排序,产生以下输出:

[[[230,234,300,354,400,500]],[[2,24]],[[56,98,102]]]

如果可能的话,我想保持列表的结构(双括号)。在python中有没有(相对)简单的方法呢?

我已经尝试了其他一些方法,但发现很难使用列表的结构以及它不可用的事实使它变得更加困难。

1 个答案:

答案 0 :(得分:0)

可能是这样的:

In [21]: vv=[[234,354,400,400,230,300,500],[2,2,24],[56,102,98]]

In [22]: [sorted(list(set(v))) for v in vv]
Out[22]: [[354, 230, 234, 300, 400, 500], [24, 2], [56, 98, 102]]

顺便说一下,你的数据结构有点奇怪。它有不匹配的括号,每个第二层列表都包含在一个额外的列表中,我暂时认为这些是拼写错误,而不是故意的。