将两个循环合二为一

Mil*_*use 3 python python-3.x

我的代码中有三个不同的循环,但我想知道是否有办法将它们中的两个组合在一起只循环一次.我的代码如下:

for x in groups:
    A bunch of code that produces the following...
    frames[x]
    highcs[x]
Run Code Online (Sandbox Code Playgroud)

然后我循环通过下面的两个循环.这些是我想要结合的.

for x, frame in frames.items():
    more unrelated code

for x, highc in highcs.items():
Run Code Online (Sandbox Code Playgroud)

最后两个循环实际上只是使用xlsxwriter创建excel工作簿.第一个循环创建工作簿并将帧[x]中的数据帧输入到工作表中.然后highc返回相同的工作表并添加新的数据帧.

Hai*_*ang 6

frames并且highcs长度相同,您可以使用zip()立即迭代它们:

for (f,frame), (h, highc) in zip(frames.items(), highcs.items()):
    # do your work here
Run Code Online (Sandbox Code Playgroud)

zip()

此函数返回元组列表,其中第i个元组包含来自每个参数序列或可迭代的第i个元素.返回的列表的长度被截断为最短参数序列的长度.