在 Python 中正确打印 for 循环内的 for 循环

时间:2021-07-15 13:24:14

标签: python nested-for-loop

希望有人能帮助我。 我在 Python 的 for 循环中使用了 for 循环。这是一个嵌套循环,我想将结果映射一次。 目前,结果正确显示一次,然后错误地重复显示。这是我的代码片段。

for country in ["USA", "Nigeria", "Germany", "India", "Britain"]:
    for code in ["+1", "+234", "+49", "+91", "+44"]:
        print(country, code)
        
print("Done")

我想要达到的结果就是这个。

USA +1
Nigeria +234
Germany +49
India +91
Britain +44
Done!

但我现在得到的是这个。

USA +1
USA +234
USA +49
USA +91
USA +44
Nigeria +1
Nigeria +234
Nigeria +49
Nigeria +91
Nigeria +44
Germany +1
Germany +234
Germany +49
Germany +91
Germany +44
India +1
India +234
India +49
India +91
India +44
Britain +1
Britain +234
Britain +49
Britain +91
Britain +44
Done

有什么方法可以改进它并获得想要的结果? 我将感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您可以压缩国家/地区和代码以匹配相应的元素:

countries = ["USA", "Nigeria", "Germany", "India", "Britain"]
codes = ["+1", "+234", "+49", "+91", "+44"]

for country, code in zip(countries, codes):
    print(country, code)

(或为了更好的格式:print(f"{country} {code}"))。

在循环内执行循环时,您会为每个国家/地区打印每个代码,这就是您在当前输出中看到的内容。

Zip 的作用与它听起来完全一样,也就是说,它就像一个拉链:

list(zip(countries, codes))

给予

[("USA", "+1"), ("Nigeria", "+234"), ...]

答案 1 :(得分:1)

我不确定这是您在等待什么,但这里有一个代码可以发送您正在等待的结果:

country = ["USA", "Nigeria", "Germany", "India", "Britain"]
code = ["+1", "+234", "+49", "+91", "+44"]
for i in range(4):
    print(country[i], code[i])
print('done')

答案 2 :(得分:1)

这会起作用:

countries = ["USA", "Nigeria", "Germany", "India", "Britain"];
codes = ["+1", "+234", "+49", "+91", "+44"];

for i in range(len(countries)):
    print(countries[i], codes[i])