@PyLearner

Почему при изменении одной переменной меняются две?

def remove_unique_numbers_from_list(data):
    def isunique(num):
        tempdata = data
        tempdata.remove(num)
        
        if num in tempdata:
            return False
        else:
            return True
            
    for nums in data:
        if isunique(nums):
            data.remove(nums)
    
    return data

print(remove_unique_numbers_from_list([1,2,3,1,3]))

Почему после
tempdata.remove(num)
меняется не только tempdata, но и data? Это же две разные переменные. Как сделать так, чтобы (num) ремувилось только у tempdata?
  • Вопрос задан
  • 374 просмотра
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ksey3000
@ksey3000
Инженер-сетевик. Программирование-хобби.
tempdata = data # создание еще одной ссылки с именем tempdata на содержимое data
tempdata = data[ : ] # создание копии data и создание ссылки tempdata на эту копию


Тут жмем Forward и смотрим визуализацию:
https://goo.gl/V2SpWB
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы