python3中的控制台列输出

时间:2014-03-18 23:09:53

标签: python-3.x console-application

我正在尝试创建为少数长度不同的列表创建列输出,例如:

list1 = ['hello', 'hello', 'hello', 'hello', 'hello', 'goodbye']
list2 = ['hello', 'hello', 'hello']
list3 = ['hello', 'hello', 'hello', 'hello']

期望的输出:

hello    hello   hello
hello    hello   hello
hello    hello   hello
hello            hello
hello
goodbye

单个列表可能很长,列表的链接方式与列表中的项目匹配和打印匹配等相关。因此需要以列格式进行。

除了打印所需的输出外,我还研究了如何做其他所有事情。

我玩拉链,但从我有限的经验来看,它似乎不喜欢不同长度的列表,但我当然可能做错了。 ; - )

基本上我被卡住了。 : - (

1 个答案:

答案 0 :(得分:0)

实际上,zip只会将项目与最短的迭代器配对。您正在寻找的是

itertools.zip_longest

这会将来自不同迭代器的元素配对,并在迭代器不足时使用fillvalue。

例如:

from itertools import zip_longest

for elems in zip_longest(list1, list2, list3):
    for e in elems:
       print(e or '\t', end=" ")
    print()