Можно ли сделать эту строку кода python3 1 с использованием функционального подхода?

grid = []
for i in range(height):
    line = input()  # width characters, each either 0 or .
    row = []
    for j in range(width):
        row.append(line[j] == '0')
    grid.append(row)

Можно ли это сделать в одну строчку при функциональном программировании? Если да, то как?

Можно, но нельзя: grid = [[char == '0' for _, char in zip(range(width), input())] for _ in range(height)]. Вместо того, чтобы пытаться сделать код одной строкой, вы должны пойти в противоположном направлении: добавить некоторую проверку ввода, которая показывает сообщение об ошибке, если пользовательский ввод содержит меньше или больше символов width.

Aran-Fey 11.04.2018 13:11
1
1
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это так, как предоставил @ Aran-Fey в комментариях:

grid = [[char == '0' for _, char in zip(range(width), input())] for _ in range(height)]

Но это не рекомендуется и затрудняет понимание вашего кода.

Другие вопросы по теме