【发布时间】:2016-12-27 01:06:30
【问题描述】:
我试着到处寻找这个问题的答案,我确信它真的很简单,但不知何故我无法让它工作。
我有两个列表,它们的值数量完全相同,我想知道其中有多少与值和位置完全匹配。这是我一直在使用的代码:
ListA = [1, 2, 3, 4, 5]
solved = 0
While solved == 0:
rr = 0
i = 0
userinput = input("Enter a 5 digit number):")
ListB = []
for u in userinput:
ListB.append(u)
While i < 5:
if ListA[i] == ListB[i]:
rr = rr + 1
print(rr)
solved = 1
我正在寻找的输出是,例如,如果输入是 12763, 2,但它似乎从未将 if 评估为 true,因此它永远不会将 1 添加到 rr。
我尝试了一个 for 循环和此设置的变体,但我看不出我错在哪里。
非常感谢您的宝贵时间!
【问题讨论】:
-
While在 python 中不是一个有效的结构。你的意思是while? -
在 Python 中,通常直接循环遍历集合中的项目,而不是使用索引间接获取这些项目(如您的
i)。这导致了紧凑、简洁的代码,例如sum(int(c) == u for c, u in zip('12763', [1, 2, 3, 4, 5]))