gpt4 book ai didi

python - 返回像 zip 这样的元组列表,使用推导式一次增量生成一个元组

转载 作者:行者123 更新时间:2023-12-01 05:25:59 25 4
gpt4 key购买 nike

我需要一个函数,它可以从序列列表中一次返回一个元组,而不使用 zip 。我尝试以这种方式做到这一点:

gen1=[(x,y)for x in range(3) for y in range(4)]

给出了以下列表:

[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)]

接下来我尝试通过以下方式一次返回一个元组:

next(gen1)

但是发生了一个错误,列表不是“可迭代的”。我如何使用生成器来做到这一点。

最佳答案

如果您希望该行为适用于任意数量的序列,而问题中仍然存在一些含糊之处,如果您想要做的只是制作 zip 的生成器版本,则以下内容应该可以很好地工作:

def generator_zip(*args):
iterators = map(iter, args)
while iterators:
yield tuple(map(next, iterators))

首先,它将每个参数转换为迭代器,然后继续生成包含每个迭代器的下一个相关条目的元组,直到用尽最短列表。

关于python - 返回像 zip 这样的元组列表,使用推导式一次增量生成一个元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21335991/

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