我对这段代码有疑问:
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;语法无效"”但我不明白为什么。
答案 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)])