python list.clear () - пустой список функций после каждой итерации при замене - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь добавить данные в список. Я использовал временный список, меняя его данные в другой список b, а затем очищая его данные на каждой итерации. Когда я использую temp.clear (), мой конечный вывод пустой. Но при использовании temp = [] я получаю правильный вывод.

Сообщите, почему при использовании temp.clear () и temp = [] используются разные выходные данные.

a=['apple','pizza','veg','chicken','cheese','salad','chips','veg']
b=[]
temp=[]

for i in range(len(a)):
    temp.append(a[i])
    b.append(temp)
    temp.clear()
    #temp = []
print(b)        

Выход

#temp.clear()
[[], [], [], [], [], [], [], []]

#temp = []
[['apple'], ['pizza'], ['veg'], ['chicken'], ['cheese'], ['salad'], ['chips'], ['veg']]

1 Ответ

0 голосов
/ 04 ноября 2019

temp.clear() удаляет все элементы из списка (см. Документы). temp = [] не очищает список. Скорее он создает новый пустой список. Поскольку вы добавляете temp к b, эти значения сохраняются при использовании temp = [], но очищаются при использовании temp.clear().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...