Python List Comprehension
List Comprehension అంటే ఏమిటి?
List Comprehension అనేది ఒక list నుండి కొత్త list ను చిన్నగా మరియు సులభంగా తయారు చేసే Python విధానం.
సాధారణంగా ఒక list లోని ప్రతి item పై loop నడిపి, కొత్త values ను మరొక list లో చేర్చడానికి ఎక్కువ lines అవసరం కావచ్చు. List comprehension అదే పనిని ఒకే line లో చేయడానికి సహాయపడుతుంది.
Syntax
[expression for item in iterable]
Condition ఉపయోగించాలంటే:
[expression for item in iterable if condition]
ఇది ఎందుకు ఉపయోగిస్తాం?
- కొత్త list ను వేగంగా తయారు చేయడానికి.
- Code ను చిన్నగా మరియు చదవడానికి సులభంగా ఉంచడానికి.
- ఒక list లోని values ను మార్చడానికి లేదా filter చేయడానికి.
- Repeated loop code ను తగ్గించడానికి.
ఇది ఎలా పనిచేస్తుంది?
- Python ముందుగా iterable list నుండి ఒక item తీసుకుంటుంది.
- ఆ item పై expression ను అమలు చేస్తుంది.
- Expression ఫలితాన్ని కొత్త list లో చేర్చుతుంది.
- అన్ని items పూర్తయ్యే వరకు ఈ పని కొనసాగుతుంది.
- if condition ఉంటే, condition true అయిన items మాత్రమే కొత్త list లోకి వస్తాయి.
List Comprehension లో ముఖ్యమైన భాగాలు
- expression: కొత్త list లో చేరే value.
- item: పాత list నుండి ఒక్కోసారి తీసుకునే value.
- iterable: loop చేయాల్సిన list లేదా ఇతర collection.
- condition: ఏ items చేర్చాలో నిర్ణయించే optional filter.
Simple Explanation
ఒక list లోని numbers ను ఒక్కొక్కటిగా తీసుకుని వాటి square values తో కొత్త list తయారు చేయాలని అనుకుందాం. సాధారణ loop లో ఒక empty list తయారు చేసి, ప్రతి number ను square చేసి append చేయాలి.
List comprehension లో ఇదే పనిని [number * number for number in numbers] వంటి ఒక line తో చేయవచ్చు.
Condition తో ఉపయోగించినప్పుడు, ఉదాహరణకు even numbers మాత్రమే తీసుకోవడానికి [number for number in numbers if number % 2 == 0] అని రాయవచ్చు.
List comprehension చిన్న code కోసం చాలా ఉపయోగకరం. కానీ చాలా క్లిష్టమైన logic ఉంటే సాధారణ for loop మరింత స్పష్టంగా ఉంటుంది.
Real-Life Example
ఒక classroom లో విద్యార్థుల marks list ఉందని అనుకుందాం. ప్రతి mark కు 5 bonus marks కలిపి కొత్త list తయారు చేయాలి. ప్రతి mark ను ఒక్కొక్కటిగా తీసుకుని bonus కలిపి కొత్త list లో పెట్టడం List Comprehension ద్వారా ఒకే line లో చేయవచ్చు.
Code Examples
Numbers యొక్క squares ను List Comprehension తో తయారు చేయడం
numbers = [1, 2, 3, 4, 5]
squares = [number * number for number in numbers]
print(squares)
ఈ code లో numbers list లోని ప్రతి number ను తీసుకుని దాని square ను తయారు చేస్తున్నాం. వచ్చిన square values అన్నీ squares అనే కొత్త list లో చేరతాయి.
[1, 4, 9, 16, 25]
Condition తో even numbers ను ఎంచుకోవడం
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [number for number in numbers if number % 2 == 0]
print(even_numbers)
ఈ code లో if condition ఉపయోగించి even numbers మాత్రమే కొత్త list లోకి తీసుకుంటున్నాం. number % 2 == 0 అయితే ఆ number even number అని అర్థం.
[2, 4, 6]
Line-by-Line Explanation
ఈ line లో numbers అనే list తయారు చేస్తున్నాం. Python ఈ list లో 1 నుండి 5 వరకు values ను నిల్వ చేస్తుంది.
ఇది list comprehension. Python numbers list నుండి ఒక్కో number ను తీసుకుని, number * number అనే expression ను అమలు చేస్తుంది. ప్రతి square value squares అనే కొత్త list లో చేరుతుంది.
ఈ line squares list లోని అన్ని values ను screen పై చూపిస్తుంది.
ఈ line లో 1 నుండి 6 వరకు numbers ఉన్న list ను తయారు చేస్తున్నాం.
Python numbers list లోని ప్రతి number ను పరిశీలిస్తుంది. number ను 2 తో భాగించినప్పుడు remainder 0 అయితే, ఆ number ను even_numbers list లో చేర్చుతుంది.
ఈ line condition ను satisfy చేసిన even numbers ను screen పై చూపిస్తుంది.
Try It
Try this Python code:
prices = [10, 20, 30, 40]
new_prices = [price + 5 for price in prices]
print(new_prices)
Practice
Practice: numbers = [3, 6, 9, 12, 15, 18] అనే list నుండి 10 కంటే పెద్ద numbers మాత్రమే ఉండే కొత్త list ను List Comprehension ఉపయోగించి తయారు చేయండి.
Hint: [number for number in numbers if number > 10] అనే రూపాన్ని ఉపయోగించండి.
Practice: names = [‘ram’, ‘sita’, ‘hari’] అనే list లోని ప్రతి name ను uppercase లోకి మార్చి కొత్త list తయారు చేయండి.
Hint: ప్రతి item పై upper() method ను ఉపయోగించండి.
Practice: numbers = [1, 2, 3, 4, 5] నుండి odd numbers మాత్రమే ఉండే కొత్త list ను తయారు చేయండి.
Hint: Odd number కోసం number % 2 != 0 condition ఉపయోగించవచ్చు.
Common Mistakes
[] ఉపయోగించకుండా syntax రాయడం.కొత్త list తయారు చేయడానికి expression మొత్తాన్ని
[] లో రాయాలి. ఉదాహరణ: [number * 2 for number in numbers].
for మరియు in పదాల క్రమాన్ని మార్చడం.సరైన క్రమం
[expression for item in iterable]. ముందుగా expression, తరువాత for item, తరువాత in list రావాలి.
if లేకుండా రాయడం.Filter చేయాలంటే condition ముందు
if తప్పనిసరిగా రాయాలి. ఉదాహరణ: [number for number in numbers if number > 10].
List comprehension ఫలితాన్ని ఏ variable లో నిల్వ చేశారో ఆ variable ను print చేయాలి.
మొదట కొత్త list లో చేరే value ను expression గా రాయండి. తరువాత
for భాగం, చివరలో అవసరమైతే if condition రాయండి.
Interview Questions
List comprehension అంటే ఏమిటి?
Answer: ఒక iterable నుండి కొత్త list ను చిన్న syntax తో తయారు చేసే Python విధానాన్ని List comprehension అంటారు.
List comprehension యొక్క సాధారణ syntax ఏమిటి?
Answer: సాధారణ syntax [expression for item in iterable]. Condition ఉన్న syntax [expression for item in iterable if condition].
List comprehension లో expression అంటే ఏమిటి?
Answer: కొత్త list లోకి చేర్చే value లేదా calculation ను expression అంటారు. ఉదాహరణకు number * number ఒక expression.
List comprehension లో condition ఎందుకు ఉపయోగిస్తారు?
Answer: పాత list లోని కొన్ని items మాత్రమే కొత్త list లోకి తీసుకోవడానికి condition ఉపయోగిస్తారు.
List comprehension తప్పనిసరిగా ఉపయోగించాలా?
Answer: కాదు. ఇది code ను చిన్నగా రాయడానికి ఉపయోగపడే విధానం. క్లిష్టమైన logic ఉన్నప్పుడు సాధారణ for loop మరింత స్పష్టంగా ఉండవచ్చు.
Exam Questions
క్రింది code యొక్క output ఏమిటి? [number * 2 for number in [1, 2, 3]]
Answer:
[2, 4, 6]
1 నుండి 5 వరకు numbers లో even numbers ను List Comprehension తో ఎలా తయారు చేస్తారు?
Answer:
[number for number in range(1, 6) if number % 2 == 0]
List comprehension లో if భాగం optionalనా?
Answer:
అవును. అన్ని items పై expression అమలు చేయాలంటే if అవసరం లేదు. Filter చేయాలనుకున్నప్పుడు మాత్రమే if ఉపయోగిస్తారు.
క్రింది code యొక్క output ఏమిటి? [word.upper() for word in ['cat', 'dog']]
Answer:
[‘CAT’, ‘DOG’]
List comprehension ఏ data structure ను తయారు చేస్తుంది?
Answer:
List comprehension ఒక కొత్త Python list ను తయారు చేస్తుంది.
Quick Revision
- List comprehension ఒక కొత్త list ను చిన్న syntax తో తయారు చేస్తుంది.
- సాధారణ syntax: [expression for item in iterable].
- Filter కోసం చివరలో if condition ఉపయోగించాలి.
- Expression కొత్త list లో చేరే value ను నిర్ణయిస్తుంది.
- List comprehension loop code ను చిన్నదిగా చేస్తుంది.
- చాలా క్లిష్టమైన logic ఉంటే సాధారణ for loop స్పష్టంగా ఉండవచ్చు.
