我正在尝试创建为少数长度不同的列表创建列输出,例如:
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
单个列表可能很长,列表的链接方式与列表中的项目匹配和打印匹配等相关。因此需要以列格式进行。
除了打印所需的输出外,我还研究了如何做其他所有事情。
我玩拉链,但从我有限的经验来看,它似乎不喜欢不同长度的列表,但我当然可能做错了。 ; - )
基本上我被卡住了。 : - (
答案 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()