2016-12-20 19 views
1

Я в настоящее время застрял в этой проблеме, поэтому у меня есть этот код.Удалить элементы из списка, в то время как другой список не сбрасывается

 rij1 = rij2 
    rij2.clear() 

Все работает правильно, но в конце цикла возникает проблема. Rij1 также очищается, потому что, по-видимому, python помнит rij1 = rij2 Есть ли способ предотвратить это?

+0

Эти имена переменных не оптимизированы для читаемости, я думаю ... – Lex

ответ

2

rij1 = rij2 хранит то же значение от list по адресу rij2 до rij1. Для сохранения новой копии списка, вы должны сделать:

rij1 = rij2[:] 

# OR 
rij1 = list(rij2) 

Кроме того, вы можете использовать copy.copy создать неполную копию list как:

from copy import copy 

rij1 = copy(rij2) 
+1

Большое вам спасибо! –

1

Вы должны сделать копию из список. После rij1 = rij2 обе переменные являются именами для одного и того же списка.

Что-то вроде

rij1 = rij2[:] 

будет работать.