【问题标题】:How to delete duplicated lists from main list [python]如何从主列表中删除重复的列表[python]
【发布时间】:2021-05-19 05:43:54
【问题描述】:

我想从主列表中删除重复的列表

输入:[['a','b'],['c','f'],['a','b'],['d','f']]

输出:[['a','b'],['c','f'],['d','f']]

【问题讨论】:

  • list(set(tuple(i) for i in l))
  • set(map(tuple, l))
  • @ajay 将返回一个元组列表,OP 希望将它们保留为列表。
  • @anonymous 会返回一个 set 元组,OP 想要一个列表列表作为输出。
  • @costaparas 如果结果确实需要作为列表列表,那么它可以作为list(map(list, set(map(tuple, l)))) 获得。但是,如果需要只是迭代,我认为这没有必要。 set(map(tuple, l)) 将返回一组元组,但可以与其他可迭代对象类似地使用

标签: python list arraylist duplicates


【解决方案1】:

在将每个元素创建为不可变对象后尝试简单地使用 set。

out = list(set([tuple(i) for i in a]))
out
[('d', 'f'), ('a', 'b'), ('c', 'f')]

如果您想将其转换回列表列表 -

list(map(list, out))
[['d', 'f'], ['a', 'b'], ['c', 'f']]

【讨论】:

    【解决方案2】:

    对得到唯一元组列表后得到的列表使用列表推导:

    x = [['a','b'],['c','f'],['a','b'],['d','f']]
    x = [list(x) for x in set(map(tuple, x))]
    print(x)
    
    Output:
    
    [['a', 'b'], ['d', 'f'], ['c', 'f']]
    

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多