gpt4 book ai didi

python - 以特定间隔循环遍历多个列表

转载 作者:行者123 更新时间:2023-11-28 20:59:29 26 4
gpt4 key购买 nike

我有两个列表。一个带有名称,一个带有与第一个列表中的名称对应的编号(对应的名称和编号在每个列表中位于相同的索引点)。我需要在一个只能处理 25 个不同名称和点的 url 中引用每个名称和数字。

pointNames = ['name1', 'name2', 'name3']
points = ['1', '2', '3'] #yes, the numbers are meant to be strings

我的实际列表中每个列表大约有 600 个值。我想要做的是同时遍历每个列表,但以 25 为增量。我可以使用以下方法对单个列表执行此操作:

def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))

for group in chunker(pointNames, 25):
print (group)

这将从列表中打印多组 25 个值,直到它遍历整个列表。我想这样做,但有两个列表。我可以使用 for(point, name) in zip(points, pointNames): 完全打印每个列表,但我需要它以 25 个为一组。

我也试过将这两个列表组合成一个字典:

dictionary = dict(zip(points, pointNames))

for group in chunker(dictionary, 25):
print (group)

但我收到以下错误:

TypeError: unhashable type: 'slice'

最佳答案

生成器会更有效率:

import itertools

def chunker(size, *seq):
seq = zip(*seq)
while True:
val = list(itertools.islice(seq, size))
if not val:
break
yield val


for group in chunker(2, pointNames, points):
print(group)

gen_groups = chunker(2, pointNames, points, pointNames, points)
group = next(gen_groups)
print(group)

使用 *seq 允许您提供任意数量的列表作为参数。

关于python - 以特定间隔循环遍历多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49519912/

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