పైథాన్‌లో కాంప్రహెన్షన్‌లను జాబితా చేయండి

List Comprehensions Python



పైథాన్‌లో లిస్ట్ కాంప్రహెన్షన్‌లు తరచుగా సింగిల్ లైన్ స్టేట్‌మెంట్‌లను వ్రాయడానికి ఉపయోగించబడతాయి, ఇవి కొత్త జాబితా లేదా డిక్షనరీని ఇట్రేబుల్ ఆబ్జెక్ట్ మీద లూప్ చేయడం ద్వారా సృష్టించబడతాయి. పైథాన్‌లో లూప్‌లు ఎలా పనిచేస్తాయో ప్రాథమిక వివరణతో ప్రారంభించి, పైథాన్‌లో లిస్ట్ కాంప్రహెన్షన్‌లను ఎలా ఉపయోగించాలో ఈ ఆర్టికల్ వివరిస్తుంది.

పైథాన్‌లో లూప్ కోసం

పైథాన్‌లోని ఎ ఫర్ లూప్ స్టేట్‌మెంట్ వరుసగా ఏదైనా వస్తువు, జాబితా, స్ట్రింగ్ మొదలైన వాటిపై తిరుగుతుంది, ఇతర ప్రోగ్రామింగ్ లాంగ్వేజ్‌లతో పోలిస్తే, దాని వాక్యనిర్మాణం చాలా శుభ్రంగా ఉంటుంది మరియు మాన్యువల్‌గా పునరావృత దశలను నిర్వచించడం అవసరం లేదు. దాని ప్రవర్తనను ఇతర ప్రోగ్రామింగ్ భాషల మాదిరిగానే చేయడానికి మార్గాలు ఉన్నప్పటికీ (ఈ వ్యాసంలో కవర్ చేయబడదు). మీరు కంటిన్యూ, బ్రేక్, పాస్ మొదలైన స్టేట్‌మెంట్‌లను ఉపయోగించడం ద్వారా లూప్‌లపై కొంత నియంత్రణను కూడా సాధించవచ్చు. పైథాన్‌లో లూప్ కోసం దిగువ ఒక సాధారణ ఉదాహరణ:







కోసంxలో పరిధి(10):
ముద్రణ(x)

పైన ఉన్న లూప్ 0 నుండి ప్రారంభమై 9 వద్ద ముగిసే పది సంఖ్యలను ముద్రించును.



జాబితా అవగాహన

లిస్ట్ కాంప్రహెన్షన్ అనేది ఒక లైనర్ స్టేట్‌మెంట్‌లో లూప్‌ల కోసం మల్టీ-లైన్ రాయడానికి సంక్షిప్తలిపి / సంక్షిప్త మార్గం తప్ప మరొకటి కాదు. దిగువ జాబితా కాంప్రహెన్షన్ ఉదాహరణ x యొక్క అన్ని విలువలను చేర్చడం ద్వారా [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] కొత్త జాబితాను సృష్టిస్తుంది.



సంఖ్యలు= [xకోసంxలో పరిధి(10)]
ముద్రణ (సంఖ్యలు)

జాబితా అవగాహన ఎల్లప్పుడూ కొత్త జాబితాను సృష్టిస్తుందని మరియు వ్యక్తీకరణలో ఉపయోగించే అసలైన ఐటరబుల్స్‌ను సవరించదని గమనించండి. విలక్షణమైన జాబితా కాంప్రహెన్షన్ వ్యక్తీకరణ తప్పనిసరిగా నిబంధనను కలిగి ఉండాలి మరియు షరతులతో కూడిన స్టేట్‌మెంట్‌లను అనుసరించవచ్చు. జాబితా గ్రహణశక్తిని ఉపయోగించకుండా, పై ఉదాహరణ క్రింది విధంగా వ్రాయబడుతుంది:





సంఖ్యలు= []
కోసంxలో పరిధి(10):
సంఖ్యలు.అనుబంధం(x)

ముద్రణ (సంఖ్యలు)

పనితీరు మరియు చదివే సామర్థ్యం

లూప్‌ల కంటే లిస్ట్ కాంప్రహెన్షన్స్ వేగంగా ఉంటాయి. ఏదేమైనా, మీరు వందల వేల ఐటెమ్‌లకు మించి ఉంటే, మీరు ప్రధాన పనితీరు మెరుగుదలలను గమనించలేరు. లూప్‌ల కోసం వ్రాయడానికి లిస్ట్ కాంప్రహెన్షన్ సంక్షిప్త మార్గాన్ని అందిస్తుండగా, సంక్లిష్ట వ్యక్తీకరణలు కోడ్‌ని సరిగా చదవలేకపోవడం మరియు వెర్బసిటీని పెంచడానికి దారితీస్తుంది. మీ ప్రోగ్రామ్‌కు గరిష్ట పనితీరును సాధించడం సంపూర్ణ అవసరం తప్ప, కోడ్‌ని చదవగలిగేలా ఉంచడం ముఖ్యం.

ఉదాహరణ: డిక్షనరీలు మరియు సెట్‌లతో లిస్ట్ కాంప్రహెన్షన్స్ సింటాక్స్ ఉపయోగించడం

పైథాన్ డిక్షనరీ అనేది కీ-వాల్యూ జతలలో నిర్వచించబడిన మూలకాల సేకరణ అయితే డూప్లికేట్‌లు అనుమతించబడని ప్రత్యేకమైన విలువల సమాహారం. పైథాన్ డిక్షనరీలు మరియు సెట్‌లతో లిస్ట్ కాంప్రహెన్షన్‌లను ఉపయోగించవచ్చు. వాక్యనిర్మాణం కొద్దిగా భిన్నంగా ఉంటుంది, ఎక్స్‌ప్రెషన్‌ను చదరపు కలుపుల్లో చుట్టడానికి బదులుగా, మీరు ఇప్పుడు గిరజాల బ్రేస్‌లను ఉపయోగించాల్సి ఉంటుంది. మీరు కొత్త జాబితాకు బదులుగా కొత్త నిఘంటువు / సెట్ వస్తువును కూడా పొందుతారు.



సమాచారం= {'నగరం':'న్యూయార్క్', 'పేరు':'జాన్ డో'}

ఆకృతీకరించిన_దాత= {k: v.శీర్షిక() కోసంకు,vలోసమాచారం.వస్తువులు()}

ముద్రణ (ఆకృతీకరించిన_దాత)

పై ఉదాహరణ స్ట్రింగ్ విలువలను టైటిల్ కేస్‌గా మారుస్తుంది మరియు ఫార్మాటెడ్_డేటా అనే కొత్త డిక్షనరీని సృష్టిస్తుంది, దీని అవుట్‌పుట్: {'నగరం': 'న్యూయార్క్', 'పేరు': 'జాన్ డో'}. ఎడమ చేతి వైపు ఉన్న డిక్షనరీ వేరియబుల్‌ను పేర్కొనడం ద్వారా మీరు డిక్షనరీని మార్చవచ్చు / స్థానంలో ఉంచవచ్చు.

సమాచారం= {'నగరం':'న్యూయార్క్', 'పేరు':'జాన్ డో'}

సమాచారం= {k: v.శీర్షిక() కోసంకు,vలోసమాచారం.వస్తువులు()}

ముద్రణ (సమాచారం)

నిఘంటువు గ్రహణశక్తిని ఉపయోగించకుండా, కోడ్ ఇలా కనిపిస్తుంది:

సమాచారం= {'నగరం':'న్యూయార్క్', 'పేరు':'జాన్ డో'}

ఆకృతీకరించిన_దాత= {}

కోసంకు,vలోసమాచారం.వస్తువులు():
ఆకృతీకరించిన_దాత[కు] =v.శీర్షిక()

ముద్రణ (ఆకృతీకరించిన_దాత)

సెట్‌లలో కీ-వాల్యూ పెయిర్‌లు లేనందున, లిస్ట్ కాంప్రహెన్షన్ మాదిరిగానే సెట్ కాంప్రహెన్షన్‌ను నిర్వచించవచ్చు. గిరజాల బ్రేస్‌ల వాడకం మాత్రమే తేడా.

ఉదాహరణ: లిస్ట్ కాంప్రహెన్షన్‌లో లూప్‌ల కోసం బహుళ

పైన పేర్కొన్న జాబితా కాంప్రహెన్షన్ ఉదాహరణ ప్రాథమికమైనది మరియు స్టేట్‌మెంట్ కోసం సింగిల్‌ని ఉపయోగిస్తుంది. లూప్‌ల కోసం బహుళ మరియు షరతులతో కూడిన if స్టేట్‌మెంట్ ఉపయోగించే ఉదాహరణ క్రింద ఉంది.

విశేషణాలు= ['డిస్క్', 'ఇయాన్', 'ఫోకల్', 'కళాత్మక']

జంతువులు= ['డింగో', 'ఎర్మిన్', 'గొయ్యి', 'బీవర్']

సంకేతనామాలు= [x +''+ మరియుకోసంxలోవిశేషణాలుకోసంమరియులోజంతువులుఉంటేమరియు.తో మొదలవుతుంది(x[0])]

ముద్రణ (సంకేతనామాలు)

కోడ్ ['డిస్కో డింగో', 'ఇయోన్ ఎర్మిన్', 'ఫోకల్ ఫోసా'] అవుట్‌పుట్‌గా చూపుతుంది. రెండు లూప్‌లు విశేషణాలు మరియు జంతువుల జాబితాలపైకి వెళ్తాయి మరియు వాటి సభ్యులు ఒక ఖాళీని ఉపయోగించి కలిసిపోతారు, రెండు పదాల మొదటి అక్షరం ఒకేలా ఉంటే మాత్రమే. జాబితా అవగాహనలను ఉపయోగించకుండా, కోడ్ ఇలా కనిపిస్తుంది:

విశేషణాలు= ['డిస్క్', 'ఇయాన్', 'ఫోకల్', 'కళాత్మక']
జంతువులు= ['డింగో', 'ఎర్మిన్', 'గొయ్యి', 'బీవర్']

సంకేతనామాలు= []

కోసంxలోవిశేషణాలు:
కోసంమరియులోజంతువులు:
ఉంటేమరియు.తో మొదలవుతుంది(x[0]):
సంకేతనామాలు.అనుబంధం(x +''+ మరియు)

ముద్రణ (సంకేతనామాలు)

ఉదాహరణ: if-else క్లాజ్‌తో కాంప్రహెన్షన్ జాబితా చేయండి

దిగువ ఉదాహరణ జాబితా కాంప్రహెన్షన్‌లలో if మరియు ఇతర స్టేట్‌మెంట్‌ల వినియోగాన్ని చూపుతుంది.

నంబర్_లిస్ట్= [1, 2, 3, 4]
మరొక_ జాబితా= [5, 6, 7, 8]

ఫలితం= [నిజమే ఉంటే (x + y)%2 == 0 లేకపోతే తప్పుడు కోసంxలోనంబర్_లిస్ట్కోసంమరియులోమరొక_ జాబితా]

ముద్రణ (ఫలితం)

రెండు జాబితాల ద్వారా లూప్ చేస్తున్నప్పుడు, పైన పేర్కొన్న జాబితా అవగాహన మూలకాల జత మొత్తం సమానంగా ఉందా లేదా అని తనిఖీ చేస్తుంది. పైన కోడ్‌ని అమలు చేయడం ద్వారా మీకు [నిజం, తప్పు, నిజం, తప్పు, తప్పు, తప్పు, నిజం, తప్పు, నిజం, నిజం, తప్పు, నిజం, తప్పు, తప్పు, నిజం, తప్పు, నిజం, తప్పుగా చూపబడుతుంది. జాబితా గ్రహణశక్తిని ఉపయోగించకుండా, కోడ్ ఇలా కనిపిస్తుంది:

నంబర్_లిస్ట్= [1, 2, 3, 4]
మరొక_ జాబితా= [5, 6, 7, 8]
ఫలితం= []

కోసంxలోనంబర్_లిస్ట్:
కోసంమరియులోమరొక_లిస్ట్:
ఉంటే (x + y)%2 == 0:
ఫలితంఅనుబంధం(నిజమే)
లేకపోతే:
ఫలితంఅనుబంధం(తప్పుడు)

ముద్రణ (ఫలితం)

ముగింపు

లిస్ట్ కాంప్రహెన్షన్స్ శుభ్రమైన మరియు సంక్షిప్త లూప్ స్టేట్‌మెంట్‌లను వ్రాయడానికి చక్కటి మార్గాన్ని అందిస్తుంది. అయినప్పటికీ, బహుళ లూప్‌లు మరియు షరతులతో కూడిన స్టేట్‌మెంట్‌లను ఉపయోగిస్తే అవి త్వరగా సంక్లిష్టంగా మరియు అర్థం చేసుకోవడం కష్టమవుతుంది. చివరికి, ఇది ప్రోగ్రామర్ యొక్క కంఫర్ట్ స్థాయికి వస్తుంది కానీ సాధారణంగా షార్ట్‌హ్యాండ్స్‌ని అధికంగా ఉపయోగించడానికి బదులుగా స్పష్టమైన, చదవగలిగే మరియు డీబగ్ కోడ్‌ను సులభంగా రాయడం మంచిది.