希望有人能帮助我。 我在 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
有什么方法可以改进它并获得想要的结果? 我将感谢您的帮助。
答案 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])