gpt4 book ai didi

Python 逐步迭代列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:35 33 4
gpt4 key购买 nike

给出以下列表:

letters = ('a', 'b', 'c', 'd', 'e', 'f', 'g')
numbers = ('1', '2', '3', '4')

如何生成一个迭代列表来生成以下内容:

output = [('a', '1'), ('b', '2'), ('c', '3'), ('d', '4'), 
('e', '1'), ('f', '2'), ('g', '3'), ('a', '4'),
('b', '1'), ('c', '2'), ('d', '3'), ('e', '4'),
('f', '1'), ('g', '2')...]

我觉得我应该能够使用

产生所需的输出
output = (list(zip(letters, itertools.cycle(numbers))

但这会产生以下结果:

output = [('a', '1'), ('b', '2'), ('c', '3'), ('d', '4'),
('e', '1'), ('f', '2'), ('g', '3')]

任何帮助将不胜感激。

最佳答案

如果您正在寻找无限生成器,则可以将 cyclezip 一起用于两个列表,其形式为 zip(itertools.cycle(x ),itertools.cycle(y))。这将为您提供所需的生成器:

>>> for x in zip(itertools.cycle(letters), itertools.cycle(numbers)):
... print(x)
...
('a', '1')
('b', '2')
('c', '3')
('d', '4')
('e', '1')
('f', '2')
('g', '3')
('a', '4')
('b', '1')
('c', '2')
('d', '3')
...

关于Python 逐步迭代列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411381/

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