gpt4 book ai didi

python - 如何找到多个集合和列表之间的交集?

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:51 27 4
gpt4 key购买 nike

所以我在井字棋游戏中有多组作为获胜条件:

    win1 = {1,2,3}
win2 = {4,5,6}
win3 = {7,8,9}
win4 = {1,5,9}
win5 = {7,5,3}
win6 = {1,4,7}
win7 = {2,5,8}
win8 = {3,6,9}

其中每个数字都是井字棋网格上的一个位置。我还有一个列表,添加了 O 和 X 球员所做的每个位置。我目前检查玩家是否获胜的方法是:

    def checker():
if (win1 or win2 or win3 or win4 or win5 or win6 or win7 or win8).issubset(jonesO):
print 'O wins!'
return 0
elif (win1 or win2 or win3 or win4 or win5 or win6 or win7 or win8).issubset(jonesX):
print 'X wins!'
return 1
elif (tie).issubset(bob):
print 'IT IS A TIE!!!!!'
return 2

但我发现 .issubset 只检查第一组而不检查其他内容。如何更改它以便 elif() 和 if 中的所有集合都作为子集进行检查?

最佳答案

在 Python 中,a 或 b 或 c 计算结果为三个中第一个为真(如果没有一个为真,则为最后一个)。在您的情况下,这将是第一个非空:win1。对于您的情况,您可以使用 any :

if any(x.issubset(jonesO) for x in (win1, win2, win3, win4, win5, win6, win7, win8)):
print 'O wins!'

关于python - 如何找到多个集合和列表之间的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com