合并两个排序的python列表

用户15922023

我正在尝试合并两个按降序排序的用户输入列表。我了解如何合并两个列表然后进行排序,但是我正在以另一种方式挣扎。

# user list input
a = [int(x) for x in input("List 1: ").split()]
b = [int(y) for y in input("List 2: ").split()]

a.sort(reverse=True)
b.sort(reverse=True)

print(a + b)

例如,我想输入:[1, 3, 3, 6]& [1, 4, 5],我的输出是:[6, 5, 4, 3, 3, 1, 1]

保罗

您可以heapq.merge为此使用它需要多个排序的可迭代对象并将它们合并为一个排序的输出,因此:

c = list(heapq.merge(
    sorted(a, reverse=True),
    sorted(b, reverse=True),
    reverse=True)

请注意,这也适用于可迭代对象(例如,延迟计算的潜在可消耗对象),这是您更有可能使用它的时候(组合已排序的可迭代对象时)。

我假设您对列表进行了预先排序,或者您只是想知道如何执行此操作,因为最好先合并列表,然后对它们进行排序(使用sorted 或对其进行变异.sort())。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章