Эффективный двойной цикл
Каков наиболее эффективный (или Pythonic способ) выполнить двойной цикл for, как показано ниже (я знаю, как сделать это для понимания списка, но не для одного возвращаемого объекта):
for i in range(0, 9):
for j in range(0, 9):
if self.get(i)[j] == "1":
return (i, j)
1 ответ
Решение
>>> 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
исключение, если ничего не найдено.