2015-10-06 138 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例外,如果沒有發現。