Какие шаги, используемые в этой функции, используются для вычисления последовательности Фибоначчи?

Собственно, это именно то, чего вы ожидаете. Давайте разложим, что здесь происходит:

Вы пишете

lst = [[1] * 4] * 3

Это эквивалентно:

lst1 = [1]*4
lst = [lst1]*3

Это означает, что lst - это список с 3 элемента, указывающие на lst1. Это означает, что две следующие строки эквивалентны:

lst[0][0] = 5
lst1[0] = 5

Поскольку lst[0] - это только lst1.

Чтобы получить желаемое поведение, вы можете использовать понимание списка:

lst = [ [1]*4 for n in xrange(3) ]

В этом случае выражение переоценивается для каждого n, что приводит к другому списку.

-5
задан Code Maniac 24 March 2019 в 03:58
поделиться

1 ответ

Шаг за шагом проработайте:

let a = 0;
let b = 1;

Назначение переменных без пояснений.

for (let i = 1; i <= 10; i++) {...}

Итерация из 1 в 10 с сохранением i текущей итерации

var c = a + b;

Установите для переменной c значение a + b.

]
a = b;
b = c;

Установите a в b и b в c - создает новые базовые значения для следующей итерации.

В этом примере показаны все переменные:

let a = 0;
let b = 1;
for (let i = 1; i <= 10; i++) {
  var c = a + b;
  a = b;
  b = c;
  console.log(`a: ${a}, b: ${b}, c: ${c}, i: ${i}`);
}

0
ответ дан Jack Bashford 24 March 2019 в 03:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: