[英]Using of 2 for loop
我想从用户那里获取信息,并用 for 循环显示它。 我写了这段代码:
name=["Name","Age","Gender"]
n=str(input())
a=int(input())
g=str(input())
nameinput=[n,a,g]
for i in name:
for j in nameinput:
print(i,j)
我希望代码的 output 是:
姓名 Fuad,18 岁,性别 M
但实际的 output 是
姓名 Fuad 姓名 18 姓名 M 年龄 Fuad 年龄 18 年龄 M 性别 Fuad 性别 18 性别 M
我该如何解决这个问题,请你解释为什么我的代码没有运行
您正在执行迭代笛卡尔积的嵌套循环( name
的每个元素都与nameinput
的每个元素配对)。 您想要对多个可迭代对象进行成对迭代,这是由zip
实现的:
for i, j in zip(name, nameinput):
print(i,j)
zip
的工作原理可以通过以下示例说明:
list(zip([1, 2, 3], [4, 5, 6]))
# [(1, 4), (2, 5), (3, 6)]
然而,嵌套循环会:
>>> [(i, j) for i in [1, 2, 3] for j in [4, 5, 6]]
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
如果您逐步考虑循环代码,则该逻辑应该变得清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.