Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于循环匹配两个不同列表中的项目_Python_List_For Loop - Fatal编程技术网

Python 用于循环匹配两个不同列表中的项目

Python 用于循环匹配两个不同列表中的项目,python,list,for-loop,Python,List,For Loop,我需要一些建议。我正在写一个简单版本的《智囊团》。计算机将选择一个随机数,它将选择一种颜色。这些颜色将存储在列表中(计算机颜色)。用户将尝试在正确的位置猜测正确的颜色。这将存储在另一个列表(userGuess)中 我想使用For循环遍历2个列表中的颜色。我想使用if语句来检查两个列表中是否都有颜色,并查看是否有匹配。如果猜测的颜色与计算机列表的位置相同,我想返回Y。如果猜测的颜色在计算机列表中,但位置不正确,我想返回一个O 我正在努力使以下代码正常工作: for i in range(4):

我需要一些建议。我正在写一个简单版本的《智囊团》。计算机将选择一个随机数,它将选择一种颜色。这些颜色将存储在列表中(计算机颜色)。用户将尝试在正确的位置猜测正确的颜色。这将存储在另一个列表(userGuess)中

我想使用For循环遍历2个列表中的颜色。我想使用if语句来检查两个列表中是否都有颜色,并查看是否有匹配。如果猜测的颜色与计算机列表的位置相同,我想返回Y。如果猜测的颜色在计算机列表中,但位置不正确,我想返回一个O

我正在努力使以下代码正常工作:

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)
。无论如何,您不需要第二个条件,一个简单的
或者
就足够了