为查询自动化运行一个包含3个步骤的循环

2024-06-16 14:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个代码来运行一个查询,该查询有两个不同的输入,切片查询并将数据粘贴到相应的国家工作表和选项卡名称中

ancestor_l = [1,2]
country_l = ['hk','my']
tab_name = ['sh1','sh2']

我希望它创建一个循环,打印以下输出:

ancestor 1
opening hksh1
pasting ancestor 1 to hksh1
opening mysh1
pasting ancestor 1 to mysh1

ancestor 2
openig hksh2
pasting ancestor 2 to hksh2
opening mysh2
pasting ancestor 2 to 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

如何修复嵌套循环


Tags: toinfortabcountryprintstropening
2条回答

下面是一个如何改进的小示例(使用jornsharpe建议的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

相关问题 更多 >