Junior
200
Қабаттасу көшірмесі дегеніміз не?
AI-дан жауап
sobes.tech AI
Терең емес көшірме (shallow copy) жаңа күрделі объект құрады, бірақ оған салынған объектілердің көшірмесін жасамайды. Оның орнына, түпнұсқа объектінің салынған объектілеріне сілтемелер көшіріледі.
Негізгі тұстар:
- Жаңа жинақ (тізім, сөздік, жиын) құрады.
- Жаңа жинақтың элементтері түпнұсқа жинақтың сол элементтеріне сілтемелер.
- Бір көшірмедегі салынған объектілерді өзгерту басқа көшірмеде де байқалады.
- Бір көшірмедегі жинақты (қосу/жою) өзгерту басқаға әсер етпейді.
Іске асырулар:
.copy()әдісі тізімдер, сөздіктер, жиындар үшін.copyмодуліненcopy.copy()функциясы.- Тізімдер үшін кесу әдісі
[:].
# Тізіммен мысал
original_list = [[1, 2], 3]
shallow_copy_list = original_list.copy()
print(f"Түпнұсқа: {original_list}")
print(f"Терең емес көшірме: {shallow_copy_list}")
print(f"Салынған тізімдердің бірдейлігі: {original_list[0] is shallow_copy_list[0]}") # Шын - сілтемелер бірдей
original_list[0][0] = 99 # Салынған тізімді өзгерту
print(f"Түпнұсқа өзгергеннен кейін: {original_list}")
print(f"Көшірме өзгергеннен кейін: {shallow_copy_list}") # Екі көшірмеде де өзгеріс байқалады
original_list.append(4) # Жинақты өзгерту
print(f"Түпнұсқа append-тан кейін: {original_list}")
print(f"Көшірме append-тан кейін: {shallow_copy_list}") # Тек түпнұсқаға әсер етеді
# copy.copy() мысалы
import copy
original_dict = {'a': [1, 2], 'b': 3}
shallow_copy_dict = copy.copy(original_dict)
print(f"Түпнұсқа: {original_dict}")
print(f"Терең емес көшірме: {shallow_copy_dict}")
print(f"Салынған тізімдердің бірдейлігі: {original_dict['a'] is shallow_copy_dict['a']}") # Шын
original_dict['a'][0] = 99 # Салынған тізімді өзгерту
print(f"Түпнұсқа өзгергеннен кейін: {original_dict}")
print(f"Көшірме өзгергеннен кейін: {shallow_copy_dict}") # Екіде де өзгеріс байқалады