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