在使用ZIP函数的时候,有没有什么方法可以为不存在的并行元素提供一些默认值,并且仍然打印整个元素?例如,对于下面的代码6fromlist a会丢失,但我不希望发生这种情况
a = [1,2,4,6] b = [[1,3],[4,7],[6,1]] for a,(b,c) in zip(a,b): print(a,b,c)
biswetbf1#
可以使用zip_longest为代码中缺少的元素提供默认值:
zip_longest
from itertools import zip_longest a = [1, 2, 4, 6] b = [[1, 3], [4, 7], [6, 1]] for a, (b, c) in zip_longest(a, b, fillvalue=(0, 0)): print(a, b, c)
这将打印以下输出:在此示例中,zip_longest函数为输入iterables中缺少的元素添加值0。默认情况下,zip_longest函数将添加None值。您可以通过在fillvalue参数中指定填充值来更改该值。
iterables
None
fillvalue
yduiuuwa2#
itertools中的zip_longest函数应该可以实现您想要的效果:
from itertools import zip_longest a = [1,2,4,6] b = [[1,3],[4,7],[6,1]] for a,(b,c) in zip_longest(a,b, fillvalue=("NaN1", "NaN2")): print(a,b,c)
6fe3ivhb3#
from itertools import zip_longest x = [1,2,4,6] y = [[1,3],[4,7],[6,1]] for x,(y,z) in zip_longest(x,y, fillvalue=("NaN1", "NaN2")): print(x,y,z)
3条答案
按热度按时间biswetbf1#
可以使用
zip_longest
为代码中缺少的元素提供默认值:这将打印以下输出:
在此示例中,
zip_longest
函数为输入iterables
中缺少的元素添加值0。默认情况下,zip_longest
函数将添加None
值。您可以通过在fillvalue
参数中指定填充值来更改该值。yduiuuwa2#
itertools中的zip_longest函数应该可以实现您想要的效果:
6fe3ivhb3#