Python 用于循环匹配两个不同列表中的项目
我需要一些建议。我正在写一个简单版本的《智囊团》。计算机将选择一个随机数,它将选择一种颜色。这些颜色将存储在列表中(计算机颜色)。用户将尝试在正确的位置猜测正确的颜色。这将存储在另一个列表(userGuess)中 我想使用For循环遍历2个列表中的颜色。我想使用if语句来检查两个列表中是否都有颜色,并查看是否有匹配。如果猜测的颜色与计算机列表的位置相同,我想返回Y。如果猜测的颜色在计算机列表中,但位置不正确,我想返回一个O 我正在努力使以下代码正常工作:Python 用于循环匹配两个不同列表中的项目,python,list,for-loop,Python,List,For Loop,我需要一些建议。我正在写一个简单版本的《智囊团》。计算机将选择一个随机数,它将选择一种颜色。这些颜色将存储在列表中(计算机颜色)。用户将尝试在正确的位置猜测正确的颜色。这将存储在另一个列表(userGuess)中 我想使用For循环遍历2个列表中的颜色。我想使用if语句来检查两个列表中是否都有颜色,并查看是否有匹配。如果猜测的颜色与计算机列表的位置相同,我想返回Y。如果猜测的颜色在计算机列表中,但位置不正确,我想返回一个O 我正在努力使以下代码正常工作: for i in range(4):
for i in range(4):
if userGuess[i] == computerColours[i]:
print("Y")
elif userGuess[i] != computerColours[i]:
print("O")
即使猜测的颜色不在计算机列表中,它仍然返回一个O
我怎样才能包含一个只返回两个列表中的颜色的支票
提前感谢要检查项目是否在列表中,请使用中的
:
for i in range(4):
if userGuess[i] in computerColours:
print("Y")
else:
print("O")
我不了解for循环,你可以这样做
如果用户以计算机颜色猜测:
打印(“Y”)
elif userGuess非计算机颜色:
打印(“O”)
将列表理解与zip
结合使用似乎有效
computerColours = ['R','G','B','O']
userGuess = ['R','P','B','O']
match = ' '.join(['Y' if i==j else 'O' for i,j in zip(computerColours, userGuess)])
print(match) # Y O Y Y
而不是使用列表,考虑<代码> SET,它提供有效的成员检查。检查列表成员身份是O(n)
。无论如何,您不需要第二个条件,一个简单的或者就足够了