【问题标题】:Printing a for loop inside a for loop correctly in Python在Python中正确打印for循环内的for循环
【发布时间】:2021-09-24 09:56:08
【问题描述】:

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

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

有什么方法可以改进它并获得预期的结果吗? 感谢您的帮助。

【问题讨论】:

标签: python nested-for-loop


【解决方案1】:

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

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"), ...]

【讨论】:

  • 非常感谢。它有帮助。
【解决方案2】:

这将起作用:

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

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

【讨论】:

  • 非常感谢。它有帮助。
【解决方案3】:

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

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

【讨论】:

  • 注意 range(4) 是 [0, 1, 2, 3],即短一个
  • 非常感谢。它有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 2018-02-04
相关资源
最近更新 更多