Python 在两个列表中迭代递增的值

Python 在两个列表中迭代递增的值,python,loops,Python,Loops,我有两份清单: a = [0, 3, 5, 6, 10, 14] b = [2, 4, 8, 9, 12, 17] 我想以交替的步骤同时迭代这两个过程,并以递增的顺序处理值。因此,如果我们打印每个值,它们的顺序如下: 0,2,3,4,5,6,8,9,10,12,14,17 我把它弄得一团糟,尝试了以下事情: i = 0 j = 0 while i < len(a) or j < len(b): if a[i] < b[j]: print a[i]

我有两份清单:

a = [0, 3, 5, 6, 10, 14]
b = [2, 4, 8, 9, 12, 17]
我想以交替的步骤同时迭代这两个过程,并以递增的顺序处理值。因此,如果我们打印每个值,它们的顺序如下:

0,2,3,4,5,6,8,9,10,12,14,17

我把它弄得一团糟,尝试了以下事情:

i = 0
j = 0
while i < len(a) or j < len(b):
    if a[i] < b[j]:
        print a[i]
        i += 1
    elif b[j] < a[i]:
        print b[j]
        j += 1
i=0
j=0
当i

但这会导致其中一个列表末尾出现一个键错误。

我认为
zip
正是您想要的

for aa ,bb in zip(a, b):
    print(f'{aa},{bb}')

将它们组合起来,然后对结果进行排序:

c = sorted(a + b)

您只需使用
而不是
,然后打印剩余的内容:

while i < len(a) and j < len(b):
    ...
k, remaining = (i, a) if i < len(a) else (j, b)
for x in remaining[k:]:
    print(x)
当i
作为替代,您可以使用:


欢迎来到SO!如果需要建议,请查看和。你在学习Python吗?如果是这样,为什么要学习Python 2?它在一月份到达了生命的尽头。例如
print(*heapq.merge(a,b),sep=',')
如果两个值相等怎么办?我起初也这么想,但在所需的输出中,它是5,6,8而不是5,8,6。你可以对结果排序你的意思是
aa,bb=sorted(aa,bb)
?这没什么区别。上面,
排序(a+b)
。我在回答如何同时迭代两个列表
>>> import heapq
>>> print(*heapq.merge(a, b))
0 2 3 4 5 6 8 9 10 12 14 17