Запись вложенных циклов в одну строку - PullRequest
0 голосов
/ 19 мая 2019

У меня есть код для расчета ширины сетки, которую я имею в 2d массиве.Я хотел бы рассчитать ширину в одной строке, используя вложенные циклы.

Я пробовал это:

width = [(row, col) for row in grid for col in row width +=1 break]

Вот код, который я знаю, работает:

for row in grid:
    for col in row:
        width += 1
    break

Я очень озадачен тем, как написать это в одной строке, если это вообще возможно.Заранее спасибо

1 Ответ

2 голосов
/ 19 мая 2019

Просто чтобы быть уверенным: мы говорим о простых массивах python, верно?

Вопрос второй: все строки имеют одинаковое количество столбцов? Команда break в рабочем подходе предполагает это.

Если это «да» на оба вопроса, вы можете просто сделать что-то вроде этого:

my_grid = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
print(len(my_grid[0])) # prints '4'
...