如何将两个列表一起添加,避免重复,并订购元素?

时间:2018-06-07 19:40:29

标签: python

我有两个用整数填充的列表。我希望将它们加在一起,以便:

  1. 输出列表没有重复元素,
  2. 是有序的,
  3. 包含两个列表的并集。
  4. 有没有办法在不创建自己的自定义功能的情况下这样做?如果没有,整洁程序会是什么样的?

    例如:

    list1 = [1, 10, 2]
    list2 = [3, 4, 10]
    

    输出:

    outputlist = [1, 2, 3, 4, 10]
    

2 个答案:

答案 0 :(得分:3)

试试这个:

combined = [list1, list2]
union = list(set().union(*combined))

这利用了method的预定义.union()set()),这就是您需要的。

combined可以包含尽可能多的元素,因为*combined中的星号表示找到所有元素的并集。

此外,我list()修改了结果,但您可以将其保留为set()

正如@glibdud在评论中指出的那样,这可能会产生一个排序列表,但不能保证,所以使用sorted()来确保它是有序的。 (像这样union = sorted(list(set().union(*combined)))

答案 1 :(得分:3)

l1 = [1, 10, 2]
l2 = [3, 4, 10]

sorted(list(set(l1 + l2)))
>>> [1, 2, 3, 4, 10]