我试图提出一个运行查询的代码,该查询具有两个不同的输入,查询并将数据粘贴到相应的国家/地区表和选项卡名称的切片
ancestor_l = [1,2]
country_l = ['hk','my']
tab_name = ['sh1','sh2']
我希望它创建一个打印以下输出的循环:
祖先1 打开hksh1 将祖先1粘贴到hksh1 打开mysh1 将祖先1粘贴到mysh1
祖先2 打开hx2 将祖先2粘贴到msh2 打开msh2 将祖先2粘贴到mysh2
我的代码看起来像这样
for anc in ancestor_l:
print "\n"
print "ancestor "+ str(anc)
for tab in tab_name:
for country in country_l:
print "opening " + str(country) + str(tab)
print "pasting ancestor "+str(anc)+" to "+ str(country) + str(tab)
但这会输出以下内容:
ancestor 1
opening hksh1
pasting ancestor 1 to hksh1
opening mysh1
pasting ancestor 1 to mysh1
opening hksh2
pasting ancestor 1 to hksh2
opening mysh2
pasting ancestor 1 to mysh2
ancestor 2
opening hksh1
pasting ancestor 2 to hksh1
opening mysh1
pasting ancestor 2 to mysh1
opening hksh2
pasting ancestor 2 to hksh2
opening mysh2
pasting ancestor 2 to mysh2
你如何修复嵌套循环?
这是一个关于如何改进这个的小例子(使用jonrsharpe建议的zip):
ancestor_l = [1,2]
country_l = ['hk','my']
tab_name = ['sh1','sh2']
for anc, tab in zip(ancestor_l,tab_name):
print("\nancestor {}".format(anc))
for country in country_l:
print("opening {}{}".format(country,tab))
print("pasting ancestor {} to {}{}".format(anc,country,tab))
输出:
ancestor 1
opening hksh1
pasting ancestor 1 to hksh1
opening mysh1
pasting ancestor 1 to mysh1
ancestor 2
opening hksh2
pasting ancestor 2 to hksh2
opening mysh2
pasting ancestor 2 to mysh2
这里是
tab_name_index = 0
for ancestor_l_val in ancestor_l:
print "\n"
print "ancestor "+ str(ancestor_l_val)
for country_l_val in country_l:
print "opening "+str(country_l_val)+str(tab_name[tab_name_index])
print "pasting ancestor "+ str(ancestor_l_val)+" to "+str(country_l_val)+str(tab_name[tab_name_index])
tab_name_index +=1
产量
ancestor 1
opening hksh1
pasting ancestor 1 to hksh1
opening mysh1
pasting ancestor 1 to mysh1
ancestor 2
opening hksh2
pasting ancestor 2 to hksh2
opening mysh2
pasting ancestor 2 to mysh2