如何在字典中使用多个条件



这是一段我试图为石头剪刀布设置规则的代码

table = {"paper" and "paper" : "Draw",
"paper" and "rock" : "Win",
"paper" and "scissors" : "You Lose",
"rock" and "paper" : "You Lose",
"rock" and "rock" : "Draw",
"rock" and "scissors" : "Win",
"scissors" and "paper" : "Win",
"scissors" and "rock" : "You Lose",
"scissors" and "scissors" : "Draw"}

这里我试图发送石头剪刀布的结果和rps列表中随机选择的值

@client.command()
async def rockpaperscissors(ctx, rpschoice):
x= random.choice(rps)
await ctx.send(x)
await ctx.send(table[rpschoice and x])

这是rps列表

rps=["rock","paper","scissors"]

程序产生给我完全随机的结果,我认为这是字典错误的结果。如果程序可以运行,它将给出计算机选择的值和游戏结果。如有任何帮助,不胜感激。

如果您想保留一个数据结构,它是一个具有"两个键"的字典,那么您可以使用tuple。元组是可哈希的,因此可以作为字典的键:

table = {("paper", "paper") : "Draw",
("paper", "rock") : "Win",
("paper", "scissors") : "You Lose",
("rock", "paper") : "You Lose",
("rock", "rock") : "Draw",
("rock", "scissors") : "Win",
("scissors", "paper") : "Win",
("scissors", "rock") : "You Lose",
("scissors", "scissors") : "Draw"}

您可以将其引用为:

result = table[('paper', 'rock')]

请注意,还有许多其他方法可以解决这个问题,我只是试图提出一个类似于问题的数据结构。