gpt4 book ai didi

python - 当无法达到预定数量时,如何制作 for 循环返回填充线?

转载 作者:行者123 更新时间:2023-12-04 10:29:17 24 4
gpt4 key购买 nike

我在刮 n来自“a、b、c、d”源的相同类型数据的迭代,但有时这些数据源之一将返回小于 n值,因为它没有那么多可提取(例如,我将设置 limit=5 ,但 c 将只有 3 个值可供提取)。

问题是我通过跳过每个 n 来组织列表中返回的数据。 th 值,因此如果其中之一在不能拉任何东西时不返回至少一个空的填充行,它就会弄乱模式。

最佳答案

您可以为生成器编写一个包装器来保证结果,即使结果是 None :

def get_result(source, fillvalue=None):
return next(source, fillvalue)

>>> iterator = iter([1, 2, 3])
>>> [get_result(iterator) for _ in range(5)]
[1, 2, 3, None, None]

或者,通过强制长度的函数传递 5 个结果块

def enforce_length(n):
def wrapped(lst):
for _ in range(n):
yield next(lst, None)

return wrapped

enforce_length_5 = enforce_length(5)

>>> list(enforce_length_5([1, 2, 3]))
[1, 2, 3, None, None]

但是,通过稍微重新组织代码,可能会有更好的解决方案。

关于python - 当无法达到预定数量时,如何制作 for 循环返回填充线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60482015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com