#python #list #for-loop #nested #range
Вопрос:
Я пытаюсь настроить коды понимания списка trow=[left right for left,right in zip(trow y, y trow)]
в цикл for вместо понимания списка. Я пытался выполнить это преобразование, но оно не работает. Как я смогу это сделать?
Для кода цикла:
def PascalTriangle(n): trow = [1] y = [0] for x in range(n): print(trow) for left,right in zip(trow y, y trow): trow.append(left right) return ngt;=1 PascalTriangle(6)
Код понимания списка:
def PascalTriangle(n): trow = [1] y = [0] for x in range(n): print(trow) trow=[left right for left,right in zip(trow y, y trow)] return ngt;=1 PascalTriangle(6)
Выход:
[1] [1, 1, 1] [1, 1, 1, 1, 2, 2, 1] [1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1] [1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 1] [1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 2, 3, 4, 4, 5, 7, 7, 5, 5, 7, 8, 9, 12, 14, 11, 5, 1]
Ожидаемый Результат:
[1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1]
Комментарии:
1.
trow.append(left right)
находится на месте и возвращаетсяNone
. Удалите задание2. Я сделал это, но как я буду добавлять в
trow
список3. Чтобы уточнить, что говорит @rdas, вместо
trow = trow.append(...)
того, чтобы просто делатьtrow.append(...)
.4. Я обновил проблему, я все еще не могу получить ожидаемый результат
Ответ №1:
Вы можете использовать временный список для сбора всех значений:
def PascalTriangle(n): trow = [1] y = [0] for x in range(n): print(trow) line = [] for left, right in zip(trow y, y trow): line.append(left right) trow = line return n gt;= 1 PascalTriangle(6)
Из:
[1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1]