for return in return语句

时间:2014-07-08 08:56:30

标签: python for-loop return

我对这段代码有疑问:

List=[' ', 'X', 'X', 'X']+[' ']*6
le='X'
def Return():
    return((for i in range(1, 10, 3):
        (List[i]==le and List[i+1]==le and List[i+2]==le)))

我想用for-loop编写它,而不是像这样指定:

 def Return():
    return ((List[1]==le and List[2]==le and List[3]==le) or #True
        (List[4]==le and List[5]==le)...etc.)

当我使用foor-loop时,我只会收到一条消息,说“#34;语法无效"”但我不明白为什么。

3 个答案:

答案 0 :(得分:1)

因为Python中的for不是表达式,所以它没有return的价值。

答案 1 :(得分:1)

您可以尝试使用any

lis=[' ', 'X', 'X', 'X']+[' ']*6
le='X'
def func():
    return any(all(lis[j]==le for j in range(i,i+3)) for i in range(0,len(lis),3)

注意:切勿将python关键字用作方法名称和变量

答案 2 :(得分:1)

您可以使用所谓的"List comprehensions"

def Return():
    return any([List[i]==le and List[i+1]==le and List[i+2]==le for i in range(1, 10, 3)])