@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)
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121
Начни с документации
c.add(b)
b.clear()

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

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

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

Войти через центр авторизации
Похожие вопросы