我想从列表列表中的每个列表中删除重复项。有没有一种有效的,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中有没有(相对)简单的方法呢?
我已经尝试了其他一些方法,但发现很难使用列表的结构以及它不可用的事实使它变得更加困难。
答案 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]]
顺便说一下,你的数据结构有点奇怪。它有不匹配的括号,每个第二层列表都包含在一个额外的列表中,我暂时认为这些是拼写错误,而不是故意的。