在同一行上打印两个列表项

2024-09-16 20:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两份清单:

a=[1, 2, 3, 4, 5]
b=[6, 7, 8, 9, 10]

我需要在同一行上打印列表的前3项。 输出应如下所示:

1 6
2 7
3 8

我已经尝试过此代码,但它只是将所有内容打印成一行:

for i in range(len(a)):
    print(a[i])
for j in range(len(b)):
    print(b[j])

Tags: 代码in内容列表forlenrange行上
3条回答

如果长度是固定的,并且您只需要每个列表中的前三个:

a=[1, 2, 3, 4, 5]
b=[6, 7, 8, 9, 10]

for i in range(3):
   print("{} {}".format(a[i], b[i]))

产出:

1 6
2 7
3 8

如果需要所有项目,但列表的长度可以不同:

a=[1, 2, 3, 4, 5, 6, 7, 8]
b=[6, 7, 8, 9, 10]

for i in range( min(len(a), len(b)) ):
   print("{} {}".format(a[i], b[i]))

产出:

1 6
2 7
3 8
4 9
5 10

也许这个

for i in zip(a,b):
    print(*i)

这也将允许列表具有不同的长度

如果列表的大小始终相同,请使用zip

for x in zip(a, b):
    print(*x)

或者itertools.zip_longest如果没有

for x in itertools.zip_longest(a, b):
    print(*x)

输出

1 6
2 7
3 8
4 9
5 10

请注意,如果列表不相等,则较短的列表将填充None。您可以使用fillvalue参数将其替换为其他默认值

itertools.zip_longest(a, b, fillvalue=default_value)

相关问题 更多 >