2015-10-06 133 views
1

什么是最有效(或Pythonic的方式)来执行双循环如下(我知道如何做到这一点上的列表理解,但不是一个对象将被返回):循环的高效率

for i in range(0, 9): 
    for j in range(0, 9): 
     if self.get(i)[j] == "1": 
      return (i, j) 
+0

看起来没问题。如果你真的需要在另一个for循环中使用for-loop,那么你没有其他办法可以做到。 – ForceBru

回答

2
>>> next(((i, j) 
      for i in range(0, 9) 
      for j in range(0, 9) 
      if self.get(i)[j] == "1"), None) 

如果找不到任何内容,将返回None

请参阅文档next

第一个参数是一个生成器。如果您提供None作为第二个参数,则需要此设置。否则,您可以跳过额外的括号。如果你不提供None,虽然它会抛出一个StopIteration例外,如果没有发现。