小编xyn*_*zzz的帖子

如何迭代多个不同长度的列表,但重复较短列表的最后一个值,直到完成最长列表?

在我的 Python 3 脚本中,我试图根据输入组合来自三个不同列表的三个数字。如果列表大小相同,则zip. 但是,我希望能够为特定列表输入单个数字,并且脚本可以重复该数字,直到最长的列表完成。这可以通过zip_longest. 但是,fillvalue对于单独的列表,不可能有单独的填充值。

以这个简单的脚本为例:

from itertools import zip_longest

list1=[1]
list2=[4, 5, 6, 7, 8, 9]
list3=[2]
for l1, l2, l3 in zip_longest(list1, list2, list3):
     print(l1, l2, l3)
Run Code Online (Sandbox Code Playgroud)

这是实际结果:

# 1    4 2
# None 5 None                                                        
# None 6 None                                                         
# None 7 None
# None 8 None
# None 9 None  
Run Code Online (Sandbox Code Playgroud)

这将是我想要的结果:

# 1 4 2
# 1 5 2                                                        
# 1 6 2                                                         
# 1 7 2
# 1 …
Run Code Online (Sandbox Code Playgroud)

python iterator list python-3.x

9
推荐指数
2
解决办法
326
查看次数

标签 统计

iterator ×1

list ×1

python ×1

python-3.x ×1