测试三个项目之一是否在两个不同的列表中,而其中一个项目不在

问题描述 投票:0回答:1

我正在尝试学习python,但遇到了一些练习代码。我想查看我放入名为guesses的列表中的三个项目中的两个是否在另一个名为favorite的列表中,同时查看我要放入列表中的第三个项目猜测不在另一个列表[[收藏夹。

games = ['CS:GO', 'MK11', 'Black Ops 3', 'League of Legends', 'Osu!', 'Injustice 2', 'Dont Starve', 'Super Smash Brothers: Ultimate', 'God of War', 'Kingdom Hearts 3', 'Red Dead Redemption 2', 'Spider-Man', ] favorite = ['God of War', 'CS:GO', 'Spider-Man'] guesses = ['', '', ''] print('I like ' + str(len(games) + 1) + ' games and here there are:' + str(games[:8]) + '\n' + str(games[9:])) print('Can you guess whats are my favorite three games out of my list?') guesses[0] = input() print('Whats game number 2?') guesses[1] = input() print('Whats game number 3?') guesses[2] = input() # if all(x in favorite for x in guesses): # print('Yes! Those are my three favorite games!') if guesses[0] in favorite & guesses[1] in favorite & guesses[2] not in favorite: print('Sorry, ' + str(guesses[0]) + ' & ' + str(guesses[1]) + ' are two of my favorite games but unfortunately ' + str(guesses[2]) + ' is not.')
我的问题是,我认为上面的if语句可以工作,可能有人请解释为什么我在下面收到此TypeError:

if guesses[0] in favorite & guesses[1] in favorite & guesses[2] not in favorite: TypeError: unsupported operand type(s) for &: 'list' and 'str'

[我也理解

all

函数在这种情况下可以工作,以查看两个列表是否相等的所有项,但是我想知道三个项中的两个是否相等而第三个项不相等。] >

我也希望大家喜欢我选择的游戏。谢谢。

我正在尝试学习python,但遇到了一些练习代码。我想检查一下我放入名为猜测的列表的三个项目中的两个是否位于另一个名为“我的最爱”的列表中,而...
python list
1个回答
1
投票
单个与号表示对二进制类型执行的bitwise and,而不是您需要的boolean and

此外,值得注意的是,这仅检查您的guesses列表的一个排列(即,如果guesses[0]不在favourites中而不是guesses[2]中,该怎么办?]
© www.soinside.com 2019 - 2024. All rights reserved.