Порядок For Loops с пониманием списка Python - PullRequest
0 голосов
/ 02 ноября 2019

В этом ответе утверждается, что

Лучший способ запомнить это, что порядок цикла for внутри понимания списка основан на порядке, в которомони появляются в традиционном циклическом подходе. Сначала идет внешний цикл, а затем - внутренние.

Однако этот ответ и мой собственный эксперимент, приведенный ниже, показывают противоположное - то есть внутреннийцикл идет первым.

В моем примере я хочу, чтобы j представлял номер строки, а i - номер столбца. Я хочу 5 строк и 4 столбца. Что мне не хватает, пожалуйста?

board = [[(j, i) for i in range(4)] for j in range(5)]

# I believe the above comprehension is equivalent to the nested for loops below
# board = []
# for j in range(5):
    # new_row = []
    # for i in range(4):
        # new_row.append((j,i))
    # board.append(new_row)

for j in range(5):
    for i in range(4):
        print(board[j][i], end="")
    print()

1 Ответ

2 голосов
/ 02 ноября 2019

Это правильный способ получить желаемый результат:

board = [(j, i) for i in range(4) for j in range(5)]

Выход: -

[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (0, 3), (1, 3), (2, 3), (3, 3), (4, 3)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...