从列表中删除重复的子列表

2024-03-28

如果我有一个这样的列表:

mylist = [[1,2,3], ['a', 'c'], [3,4,5],[1,2], [3,4,5], ['a', 'c'], [3,4,5], [1,2]]

删除重复子列表的最佳方法是什么?

现在我用this https://stackoverflow.com/a/20462808/4599833:

y, s = [ ], set( )
for t in mylist:
    w = tuple( sorted( t ) )
    if not w in s:
        y.append( t )
        s.add( w )

它有效,但我想知道是否有更好的方法?更像蟒蛇的东西吗?


将元素转换为元组*,然后将其整个转换为集合,然后将所有内容转换回列表:

m = [[1,2,3], ['a', 'c'], [3,4,5],[1,2], [3,4,5], ['a', 'c'], [3,4,5], [1,2]]

print [list(i) for i in set(map(tuple, m))]

*我们正在转换为元组,因为列表是不可散列的(因此我们不能在它们上使用 set

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从列表中删除重复的子列表 的相关文章

随机推荐