@kyklaed

Добавление в список списка в цикле, как?

Привет, у меня есть некоторая задача создание списка списков в цикле, я столкнулся с проблемой что в цикле список который я добавляю в другой список с помощью append постоянно переоределяется во всем списке. не могу понять где я ошибся

сначала добавляется 4 элемента , параллельно в другой список добавляется 4 элемента, когда набралось 4 элемента список должен добавиться в основной список и обнулиться после чего выполнение продолжается и так пока не останется элементов в изначальном списке

k = [1,2,3,4,5,6,7,8,9,10,11,12,13,]
kk={1:11,2:22,3:33,4:44,5:55,6:66,7:77,8:88,9:99,10:1010,11:1111,12:1212,13:1313}
table=[]
res=[]
rek=0
ite=0

def list_in_list(rek,ite,table,res):
    while rek != len(k):
        for i in k:
            if ite <=3:
                table.append(i)
                res.append(kk[i])
                ite+=1
                if len(k) - rek == 1:
                    ite=4
                if ite > 3 :
                    table.append(res)
                    ite = 0
                    res.clear()
            rek+=1

list_in_list(rek,ite,table,res)


Пример работы кода

table = [1, 2, 3, 4, [11, 22, 33, 44]]
table = [1, 2, 3, 4, [55, 66, 77, 88], 5, 6, 7, 8, [55, 66, 77, 88]]
table = [1, 2, 3, 4, [99, 1010, 1111, 1212], 5, 6, 7, 8, [99, 1010, 1111, 1212], 9, 10, 11, 12, [99, 1010, 1111, 1212]]
table = [1, 2, 3, 4, [1313], 5, 6, 7, 8, [1313], 9, 10, 11, 12, [1313], 13, [1313]]
[1, 2, 3, 4, [], 5, 6, 7, 8, [], 9, 10, 11, 12, [], 13, []]
  • Вопрос задан
  • 498 просмотров
Решения вопроса 1
15432
@15432
Системный программист ^_^
У вас res один на всю функцию. И меняя его в одном месте, вы меняете содержимое по всем ссылкам на него.
Попробуйте вместо
res.clear()
присвоить переменной res новый пустой список
res = []
тогда при следующих .append(res) добавляться будет новый созданный список, а не изменённый старый.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
24 мая 2024, в 15:32
35000 руб./за проект
24 мая 2024, в 15:30
2400 руб./за проект
24 мая 2024, в 15:28
25000 руб./за проект