如何将两个列表加在一起,避免重复,并对元素进行排序?



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

  1. 输出列表没有重复的元素,
  2. 是有序的,并且
  3. 包含两个列表的并集。

有什么方法可以在不创建自己的自定义函数的情况下做到这一点?如果没有,一个整洁的程序会是什么样子?

例如:

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

输出:

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

试试这个:

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

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

combined里面可以有任意数量的元素,因为*combined中的星号表示找到所有元素的并集。

另外,我list()了结果,但您可以将其保留为set().

正如@glibdud在注释中指出的那样,这可能会生成排序列表,但不能保证,因此请使用sorted()来确保其有序。(像这个union = sorted(list(set().union(*combined)))(

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

最新更新