@Nulltiton

Почему после очистки добавленного листа исчезают значения из другого листа?

Пытаюсь разбить множества на случайное количество подмножеств из случайных элементов однако после выполнения 15 строчки очищается не только лист b, но и лист c. Объясните, почему так происходит?
Код:
from random import randint

a = [5, 4, 3, 9, 7, 4, 1, 1, 4, 7]
b = []
c = []

amount = int(input("Введите количество подмножеств: "))

for i in range(amount):
    for j in range(randint(1, 2)):
        rnd = randint(0, len(a))
        b.append(a[rnd])
        a.pop(rnd)
    c.add(b)
    b.clear()

for i in range(len(c)):
    print(c)
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
fenrir1121
@fenrir1121
Начни с документации
c.add(b)
b.clear()

Ознакомьтесь с тем, что из себя представляет список в питоне. Если упрощать это динамический массив ссылок. В вашем случае все элементы списка c фактически ведут в один и тот же очищенный b.
Кстати у списка нет метода .add, поэтому такой код вообще не запустится.

Визуализация как связаны объекты в вашем коде63fc85239dd32123307508.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час