@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. Но какие варианты выхода есть?
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
sswwssww
@sswwssww
Замени
result.append(temp)
на
result.append(temp[:])
Делая срез [:] ты будешь передавать поверхностную копию temp вместо ссылки на оригинальный temp.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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