我有两张单子。一个是名字,另一个是数字,与第一个列表中的名字对应(对应的名字和数字在每个列表的同一索引点上)。我需要引用一个url中的每个名称和数字,该url一次只能处理25个不同的名称和点。你知道吗
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'
对你的第一个函数做一个相对较小的改动怎么样:
电话如下:
发电机效率更高:
使用
*seq
可以给出任意数量的list作为参数。你知道吗Itertools可以将迭代器(或生成器)分割成块,并使用一个小的helper函数继续执行,直到完成为止:
相关问题 更多 >
编程相关推荐