Ro'yxatni Nusxalash
Ba'zida siz ro'yxatni nusxalashni xohlaysiz. Ro'yxatingizni nusxalashning oddiy usullaridan biri copy
metodidan foydalanishdir:
Bu muvaffaqiyatli ravishda yangi ro'yxat yaratadi va uni new_list
o'zgaruvchisiga tayinlaydi.
Ammo, buni amalga oshirganingizda, siz “siyoh nusxasi” deb ataladigan narsani yaratmoqdasiz. Bu degani, agar ro'yxatdagi o'zgartiriladigan (mutable) ob'ektlar bo'lsa, ularni o'zgartirish natijasida ikkala ro'yxatga ham ta'sir qiladi. Masalan, agar sizning ro'yxatingizda bir lug'at (dictionary) bo'lsa va lug'at o'zgartirilsa, ikkala ro'yxat ham o'zgaradi, bu esa siz xohlamagan holat bo'lishi mumkin. Siz lug'atlar haqida 8-bobda bilib olasiz.
Siz ro'yxatni nusxalash uchun bu qiziq sintaksisni ham ishlatishingiz mumkin:
Ushbu misol Python ga 0 (birinchi) elementdan oxirigacha kesim yaratishni aytmoqda, bu esa butun ro'yxatni beradi.
Oxirida, siz Python ning list()
funksiyasidan foydalanib ham ro'yxatni nusxalashingiz mumkin:
Qanday usulni tanlaysiz, [:]
, copy()
yoki list()
bilan ro'yxatni nusxalash, uchalasi ham siyoh nusxasini yaratadi. Bir ro'yxatni o'zgartirish, nusxalangan ro'yxatga ta'sir qilishi kabi g'alati muammolarga duch kelmaslik uchun, siz copy
modulidan deepcopy
metodidan foydalanishingiz kerak.