Python Copying Lists
Copying Lists
ఒక list ను మరో list లోకి copy చేయడానికి Python లో కొన్ని సులభమైన మార్గాలు ఉన్నాయి. List ను copy చేసినప్పుడు, మనకు రెండు list objects లభిస్తాయి. ఒక list లో మార్పు చేసినప్పుడు మరో list మారకుండా ఉండటానికి నిజమైన copy ఉపయోగించడం ముఖ్యం.
ఎందుకు Lists ను copy చేయాలి?
ఒకే data ను రెండు వేర్వేరు list లుగా ఉపయోగించాల్సినప్పుడు copying ఉపయోగపడుతుంది. ఉదాహరణకు, original list ను భద్రంగా ఉంచి, copied list పై మార్పులు చేయవచ్చు.
List assignment మరియు List copy మధ్య తేడా
second = first అని రాస్తే కొత్త list తయారు కాదు. రెండు variables ఒకే list ను సూచిస్తాయి. అందువల్ల ఒక variable ద్వారా చేసిన మార్పు మరొక variable లో కూడా కనిపిస్తుంది.
second = first.copy() అని రాస్తే కొత్త list తయారవుతుంది. అప్పుడు copied list లో చేసిన మార్పులు original list పై ప్రభావం చూపవు.
List copy చేయడానికి మార్గాలు
new_list = old_list.copy()new_list = old_list[:]new_list = list(old_list)
Beginner స్థాయిలో copy() method చాలా స్పష్టంగా మరియు సులభంగా ఉంటుంది.
Simple Explanation
ఒక notebook లో ఉన్న shopping items ను మరో notebook లోకి రాసుకున్నట్లు list copy చేయడాన్ని ఊహించండి. రెండో notebook లో ఒక item మార్చినా, మొదటి notebook లోని item మారదు. Python లో copy() method ఇదే విధంగా కొత్త list ను తయారు చేస్తుంది.
ఉదాహరణకు, copied = original.copy() అంటే original లోని items తో కొత్త list తయారు చేసి copied variable లో ఉంచడం. తరువాత copied లో item మార్చినా original list అలాగే ఉంటుంది.
కానీ copied = original అంటే copy కాదు. రెండు variables ఒకే list ను సూచిస్తాయి. కాబట్టి list ను నిజంగా copy చేయాలంటే copy(), slicing లేదా list() ఉపయోగించాలి.
Real-Life Example
ఒక teacher వద్ద students పేర్లతో ఉన్న original list ఉందని అనుకుందాం. పరీక్ష కోసం ఆ పేర్ల list ను copy చేసి, copied list లో కొత్త student పేరు చేర్చవచ్చు. Original list ను అలాగే ఉంచాలంటే copy() ఉపయోగించాలి.
Code Examples
copy() method తో List ను copy చేయడం
original = ['apple', 'banana', 'cherry']
copied = original.copy()
copied[0] = 'mango'
print('Original:', original)
print('Copied:', copied)
ఇక్కడ original.copy() ఉపయోగించి original list కు కొత్త copy తయారు చేశాము. తరువాత copied list లోని మొదటి item ను మార్చాము. ఆ మార్పు copied list లో మాత్రమే కనిపిస్తుంది; original list మారదు.
Original: ['apple', 'banana', 'cherry'] Copied: ['mango', 'banana', 'cherry']
Assignment వల్ల వచ్చే తేడా
original = ['red', 'blue']
assigned = original
assigned.append('green')
print('Original:', original)
print('Assigned:', assigned)
ఇక్కడ assigned = original వాడాము. ఇది కొత్త list ను తయారు చేయదు. రెండు variables ఒకే list ను సూచిస్తాయి. అందువల్ల assigned లో item చేర్చినప్పుడు original లో కూడా ఆ item కనిపిస్తుంది.
Original: ['red', 'blue', 'green'] Assigned: ['red', 'blue', 'green']
Line-by-Line Explanation
ఈ line లో మూడు items ఉన్న original list తయారవుతుంది. Python ఈ list ను memory లో ఉంచి, దానికి original అనే variable ను జత చేస్తుంది.
ఈ line original list యొక్క కొత్త copy ను తయారు చేస్తుంది. Python copied అనే variable కు కొత్త list object ను ఇస్తుంది.
ఈ line copied list లో index 0 ఉన్న apple item ను mango గా మార్చుతుంది. ఇది copied list పై మాత్రమే ప్రభావం చూపుతుంది.
ఈ line original list ను screen పై చూపిస్తుంది. Original list copy చేయబడిన తరువాత మార్చబడలేదు కాబట్టి apple అలాగే కనిపిస్తుంది.
ఈ line copied list ను screen పై చూపిస్తుంది. ఇందులో మొదటి item mango గా మార్చబడింది కాబట్టి mango కనిపిస్తుంది.
ఈ line red మరియు blue items ఉన్న కొత్త original list ను తయారు చేస్తుంది.
ఈ line కొత్త copy తయారు చేయదు. assigned మరియు original రెండూ ఒకే list object ను సూచిస్తాయి.
ఈ line ఒకే list కు green item ను చివరలో చేర్చుతుంది. ఆ list ను రెండు variables సూచిస్తున్నందున మార్పు రెండింటిలోనూ కనిపిస్తుంది.
ఈ line original variable ద్వారా list ను print చేస్తుంది. assigned ద్వారా చేసిన మార్పు కూడా ఇందులో కనిపిస్తుంది.
ఈ line assigned variable ద్వారా అదే list ను print చేస్తుంది. అందువల్ల original list తో సమానమైన output వస్తుంది.
Try It
Try this Python code:
colors = ['red', 'blue', 'green']
new_colors = colors.copy()
new_colors.append('yellow')
print('Original:', colors)
print('Copied:', new_colors)
Practice
Practice: 10, 20, 30 items ఉన్న numbers list ను copy చేయండి. Copied list లో 40 ను add చేయండి. చివరగా original మరియు copied lists ను print చేయండి.
Hint: copied_numbers = numbers.copy() మరియు copied_numbers.append(40) ఉపయోగించండి.
Practice: fruits list ను copy చేసి, copied list లో మొదటి item ను ‘orange’ గా మార్చండి. Original list మరియు copied list ను print చేయండి.
Hint: మొదటి item ను మార్చడానికి index 0 ఉపయోగించండి.
Common Mistakes
copied = original రాసి దాన్ని list copy అని భావించడం.
కొత్త list కావాలంటే copied = original.copy() లేదా copied = original[:] ఉపయోగించండి.
copy() రాసేటప్పుడు parentheses మర్చిపోవడం, ఉదాహరణకు copied = original.copy.
copy() ఒక method కాబట్టి చివరలో parentheses తప్పనిసరిగా ఉండాలి.
Original list మారలేదు అని అనుకుని, copied list లో చేసిన మార్పు original లో కూడా కనిపించినా కారణం అర్థం చేసుకోకపోవడం.
మీరు copy() ఉపయోగించారా లేదా assignment మాత్రమే చేశారా పరిశీలించండి. Assignment అయితే రెండు variables ఒకే list ను సూచిస్తాయి.
Copy చేసిన list కు item add చేయాల్సినప్పుడు పొరపాటున original list పై append() ఉపయోగించడం.
మార్పు చేయాల్సిన list పేరు సరైనదా చూసుకోండి. Copied list పై మార్పు చేయాలంటే copied.append(item) ఉపయోగించండి.
Interview Questions
Python లో list ను copy చేయడానికి సులభమైన method ఏది?
Answer: copy() method. ఉదాహరణ: new_list = old_list.copy().
What is the difference between new_list = old_list and new_list = old_list.copy()?
Answer: new_list = old_list రెండు variables ను ఒకే list కు refer చేయిస్తుంది. new_list = old_list.copy() కొత్త list object ను తయారు చేస్తుంది.
Copied list లో మార్పు చేసినప్పుడు original list ఎందుకు మారదు?
Answer: copy() కొత్త list object ను తయారు చేస్తుంది. కాబట్టి రెండు lists వేర్వేరు objects గా ఉంటాయి.
List ను copy చేయడానికి slicing ను ఎలా ఉపయోగిస్తారు?
Answer: new_list = old_list[:] అని రాస్తే old_list యొక్క items తో కొత్త list తయారవుతుంది.
Exam Questions
క్రింది code output ఏమిటి? items = [1, 2]copy_items = items.copy()copy_items.append(3)print(items)
Answer:
[1, 2]. ఎందుకంటే copy_items ఒక ప్రత్యేకమైన కొత్త list.
క్రింది code output ఏమిటి? a = [5, 6]b = ab.append(7)print(a)
Answer:
[5, 6, 7]. ఎందుకంటే a మరియు b ఒకే list ను సూచిస్తున్నాయి.
List copy చేయడానికి ఉపయోగించే రెండు మార్గాలు రాయండి.
Answer:
new_list = old_list.copy() మరియు new_list = old_list[:].
Original list ను మార్చకుండా copied list లో item మార్చడానికి ఏ method ఉపయోగించాలి?
Answer:
copy() method ఉపయోగించాలి.
Quick Revision
- List ను నిజంగా copy చేయడానికి
old_list.copy()ఉపయోగించండి. new_list = old_listకొత్త list తయారు చేయదు.- Assignment చేసినప్పుడు రెండు variables ఒకే list ను సూచిస్తాయి.
- Copy చేసిన list లో మార్పులు original list ను ప్రభావితం చేయవు.
- Slicing
old_list[:]మరియుlist(old_list)కూడా list copy చేయడానికి ఉపయోగించవచ్చు. - Copy చేసిన తరువాత మార్పు చేయాల్సిన list పేరు సరిగ్గా ఎంచుకోండి.
