如何在 Python 循环中有双计数器变量?

How to have double counter variable in Python loop?

x=[1,2,3,4,5]
y=[6,7,8,9,10]
for a,b in x,y:
    print(a,b)

预期输出:

1,6
2,7
3,8
4,9
5,10

但我知道两个计数变量是不可能的。通过提供更好的替代代码来帮助我实现相同的目标。

您可以使用zip()功能。 zip() 函数 returns 一个 zip 对象,它是元组的迭代器,其中每个传递的迭代器中的第一项配对在一起,然后每个传递的迭代器中的第二项配对在一起等

试试这个:

x=[1,2,3,4,5] 
y=[6,7,8,9,10]

for a, b in zip(x, y):
    print(f"{a}, {b}")

输出:

1, 6
2, 7
3, 8
4, 9
5, 10

你可以在这里使用zip

for a,b in zip(x,y):
    print(a,b,sep=', ')

使用range

for i in range(len(x)):
    print(x[i],y[i],sep=', ')

如果你有不等长的列表使用itertools.zip_longest.

for i,j in itertools.zip_longest(x,y,fillvalues=' '):
    print(i,j,sep=', ')

使用 zip 并格式化输出:

x = [1, 2, 3, 4, 5]
y = [6, 7, 8, 9, 10]

str_ = ""
for x_, y_ in zip(x,y):
    str_ += "%d,%d " % (x_, y_)

print(str_)

输出:

1,6 2,7 3,8 4,9 5,10

另外:

for x_, y_ in zip(x,y):
    print("%d,%d" % (x_, y_))

输出:

1,6
2,7
3,8
4,9
5,10