我有两个填充整数的列表。我希望将它们加在一起,以便:
- 输出列表没有重复的元素,
- 是有序的,并且
- 包含两个列表的并集。
有什么方法可以在不创建自己的自定义函数的情况下做到这一点?如果没有,一个整洁的程序会是什么样子?
例如:
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]