运行一个循环,该循环有3个步骤进行查询自动化

问题描述 投票:0回答:2

我试图提出一个运行查询的代码,该查询具有两个不同的输入,查询并将数据粘贴到相应的国家/地区表和选项卡名称的切片

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

你如何修复嵌套循环?

python
2个回答
0
投票

这是一个关于如何改进这个的小例子(使用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

0
投票

这里是

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
© www.soinside.com 2019 - 2024. All rights reserved.