如何缩短遍历列表中所有元素的多个“或”运算符的列表

时间:2017-04-07 14:04:42

标签: python list python-3.x

编辑:这个问题并不重复,因为我问的是如何缩短这个完整写出来的任务,而且据说与我重复的问题问为什么'a == b或c或d'总是评估为True,我知道答案,而不是我坚持的。

我开始制作这个功能,但我不知道是谁缩短这个'或'任务首先它看起来不好看,如果列表是100个元素长,那么打字移动会很荒谬[n ]一直到移动[n + 99]。

关于如何缩短这一点的任何建议,因为我无法想到任何事情,另外注意他们需要整数我知道我可以做到

if playerMove == '1 2 3 4 5 6 7 8 9'.split():

然而,playerMove是一个整数,数字是字符串。

def getPlayerMove(playerMove):
    while True:
        n=0
        moves = [1,2,3,4,5,6,7,8,9]
        if playerMove == moves[n] or moves[n+1] or moves[n+2] or moves[+3] or moves[n+4] or moves[n+5] or moves[n+6] or moves[n+7] or moves[n+8] or moves[n+9]:
            return playerMove
        else:
            playerMove = int(input("Enter Number 1-9"))

1 个答案:

答案 0 :(得分:3)

您实际上想检查成员身份,因此只需使用moves = {1,2,3,4,5,6,7,8,9} if playerMove in moves: # do something 运算符即可。另外,作为一种更加pythonic的方式,使用一个集合来保留你的移动,因为它的成员资格检查的复杂性大约是O(1):

geom_segment