Задать вопрос
@fastym

Не получается очистить временный список?

Есть функция chunked ее суть принять на вход список и число, задающее размер чанка (куска), а возвращает список из чанков указанной длины.

def chunked(s, n):
    s = s.split()
    count = 0
    temp = []
    result = []
    for i in s:
        temp.append(i)
        count += 1
        if count == n:
            result.append(temp)
            print(f'promej {result}')
            temp.clear()
            count = 0
    return result
    pass


print(chunked("a b c e f g", 3))


Если запустить выведет следующее:
promej [['a', 'b', 'c']]
promej [['e', 'f', 'g'], ['e', 'f', 'g']]
[[], []]

вот как можно оставить ( promej [['e', 'f', 'g'], ['e', 'f', 'g']] )

Я понимаю что если я стираю temp он и стирает result. Но какие варианты выхода есть?
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
sswwssww
@sswwssww
Замени
result.append(temp)
на
result.append(temp[:])
Делая срез [:] ты будешь передавать поверхностную копию temp вместо ссылки на оригинальный temp.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 00:55
2500 руб./за проект
02 февр. 2025, в 00:25
5000 руб./за проект
02 февр. 2025, в 00:18
1000 руб./за проект