BitNeBolt
@BitNeBolt

Почему результатом является пустой массив?

Вот код, который должен возвращать массив, состоящий из списков в которых по 5 элементов. Почему создается пустой массив pred?
import random

pred = []
genes = []

for i in range(0, 5):
    for j in range(0, 5):
        a = random.randint(-1000, 1000)
        b = random.randint(-1000, 1000)
        c = random.randint(-1000, 1000)
        d = random.randint(-1000, 1000)

        genes.append((a, b, c, d))

    pred.append(genes)
    genes.clear()

print(pred)

P.S. если добавлять не массив genes, а что-то другое, то оно добавляется.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что вы в pred добавляете ссылку на genes, а потом genes очищаете. Решение простое - добавлять ссылку на копию pred.append(genes[:]) или объявить genes внутри цикла и не очищать его.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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