ازگر میں فہم کی فہرست بنائیں۔

List Comprehensions Python



فہرست کی تفہیم اکثر ازگر میں سنگل لائن کے بیانات لکھنے کے لیے استعمال کی جاتی ہے جو کہ ایک تکراری شے کو لوپ کرکے نئی فہرست یا لغت بناتی ہے۔ یہ آرٹیکل وضاحت کرے گا کہ ازگر میں فہرست کی تفہیم کو کس طرح استعمال کیا جائے ، اس کی بنیادی وضاحت کے ساتھ کہ ازگر میں لوپس کیسے کام کرتے ہیں۔

ازگر میں لوپ کے لیے۔

ازگر میں ایک لوپ بیان ترتیب وار کسی بھی شے ، فہرست ، سٹرنگ وغیرہ کے اراکین پر دوسری پروگرامنگ زبانوں کے مقابلے میں تکرار کرتا ہے ، اس کا نحو بہت صاف ہے اور اسے تکرار کے مراحل کی دستی طور پر وضاحت اور تکرار شروع کرنے کی ضرورت نہیں ہے۔ اگرچہ اس کے رویے کو دوسری پروگرامنگ زبانوں کی طرح بنانے کے طریقے ہیں (اس مضمون میں شامل نہیں ہوں گے)۔ آپ جاری رکھیں ، توڑیں ، پاس کریں وغیرہ جیسے بیانات کا استعمال کرتے ہوئے لوپس پر کچھ کنٹرول بھی حاصل کرسکتے ہیں۔







کے لیےایکسمیں رینج(10۔):
پرنٹ کریں(ایکس)

اوپر کا لوپ دس نمبر پرنٹ کرے گا جو 0 سے شروع ہوکر 9 پر ختم ہوگا۔



فہم کی فہرست بنائیں۔

فہرست کی تفہیم ایک لائنر بیان میں لوپس کے لیے ملٹی لائن لکھنے کا ایک مختصر / مختصر طریقہ ہے۔ فہرست کی تفہیم کی مثال ذیل میں x کی تمام اقدار کو شامل کرکے [0 ، 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9] کے طور پر ایک نئی فہرست بنائے گی۔



نمبر= [ایکسکے لیےایکسمیں رینج(10۔)]
پرنٹ کریں (نمبر)

نوٹ کریں کہ فہرست کی تفہیم ہمیشہ ایک نئی فہرست بناتی ہے اور اظہار میں استعمال ہونے والے اصل تکرار کو تبدیل نہیں کرتی ہے۔ ایک عام فہرست کے فہم کے اظہار میں ایک شق ہونا ضروری ہے اور اس کے بعد اگر اور کوئی مشروط بیانات ہوں۔ فہرست کی تفہیم کا استعمال کیے بغیر ، مندرجہ بالا مثال درج ذیل طریقے سے لکھی جائے گی۔





نمبر= []
کے لیےایکسمیں رینج(10۔):
نمبرشامل کریں(ایکس)

پرنٹ کریں (نمبر)

کارکردگی اور پڑھنے کی اہلیت۔

فہرست کی تفہیم لوپس سے زیادہ تیز ہے۔ تاہم ، جب تک کہ آپ سینکڑوں ہزاروں آئٹمز کا اعادہ نہیں کر رہے ، آپ کو کارکردگی میں بڑی بہتری نظر نہیں آئے گی۔ اگرچہ فہرست کی تفہیم لوپس کے لیے لکھنے کا ایک جامع طریقہ فراہم کرتی ہے ، پیچیدہ تاثرات کوڈ کی ناقص پڑھنے کی صلاحیت اور بڑھتے ہوئے الفاظ کی وجہ بن سکتے ہیں۔ کوڈ کو پڑھنے کے قابل رکھنا ضروری ہے ، جب تک کہ زیادہ سے زیادہ کارکردگی کا حصول آپ کے پروگرام کی مطلق ضرورت نہ ہو۔

مثال: لسٹ کمپری ہینشنز نحو کو لغتوں اور سیٹوں کے ساتھ استعمال کرنا۔

ازگر کی لغت کلیدی قدر کے جوڑوں میں متعین عناصر کا مجموعہ ہے جبکہ ایک مجموعہ منفرد اقدار کا مجموعہ ہے جہاں نقل کی اجازت نہیں ہے۔ فہرست کی تفہیم ازگر لغات اور سیٹ کے ساتھ بھی استعمال کی جا سکتی ہے۔ نحو تھوڑا سا مختلف ہے ، مربع منحنی خطوط وحدانی میں لپیٹنے کے بجائے ، اب آپ کو گھوبگھرالی منحنی خطوط وحدانی کا استعمال کرنا پڑے گا۔ آپ کو نئی فہرست کے بجائے ایک نئی لغت / سیٹ آبجیکٹ بھی ملے گا۔



ڈیٹا= {'شہر':'نیویارک'، 'نام':'جان ڈو'}

formatted_data= {k: v.عنوان() کے لیےکو،vمیںڈیٹااشیاء()}

پرنٹ کریں (formatted_data)

اوپر دی گئی مثال سٹرنگ ویلیوز کو ٹائٹل کیس میں تبدیل کر دے گی اور فارمیٹڈ ڈیٹا نامی ایک نئی لغت بنائے گی ، جس کا آؤٹ پٹ ہوگا: {'city': 'New York'، 'name': 'John Doe'}۔ آپ بائیں ہاتھ کی موجودہ لغت متغیر کی وضاحت کرکے لغت / سیٹ ان جگہ کو بھی تبدیل کرسکتے ہیں۔

ڈیٹا= {'شہر':'نیویارک'، 'نام':'جان ڈو'}

ڈیٹا= {k: v.عنوان() کے لیےکو،vمیںڈیٹااشیاء()}

پرنٹ کریں (ڈیٹا)

لغت کی تفہیم کا استعمال کیے بغیر ، کوڈ اس طرح نظر آئے گا:

ڈیٹا= {'شہر':'نیویارک'، 'نام':'جان ڈو'}

formatted_data= {}

کے لیےکو،vمیںڈیٹااشیاء():
formatted_data[کو] =v.عنوان()

پرنٹ کریں (formatted_data)

چونکہ سیٹوں میں کلیدی قدر کے جوڑے نہیں ہوتے ہیں ، ایک سیٹ فہم کی وضاحت اسی طرح کی جاسکتی ہے جیسے فہرست کی تفہیم۔ فرق صرف گھوبگھرالی منحنی خطوط وحدانی کا استعمال ہے۔

مثال: ایک فہرست سمجھنے میں لوپس کے لیے ایک سے زیادہ۔

مذکورہ فہرست کی تفہیم کی مثال بنیادی ہے اور بیان کے لیے واحد استعمال کرتی ہے۔ ذیل میں ایک مثال ہے جو لوپس کے لیے ایک سے زیادہ استعمال کرتی ہے اور مشروط اگر بیان۔

صفت= ['ڈسک'، 'ایون'، 'فوکل'، 'فنکارانہ']

جانور= ['ڈنگو'، 'ارمین'، 'گڑھا'، 'بیور']

کوڈ نام= [x +''+ اورکے لیےایکسمیںصفتکے لیےاورمیںجانوراگراور.شروع کے ساتھ(ایکس[])]

پرنٹ کریں (کوڈ نام)

کوڈ ['ڈسکو ڈنگو' ، 'ایون ایرمین' ، 'فوکل فوسا'] کو آؤٹ پٹ کے طور پر دکھائے گا۔ لوپس کے لیے دونوں صفتوں اور جانوروں کی فہرستوں پر چلے جاتے ہیں اور ان کے ممبران ایک جگہ کا استعمال کرتے ہوئے جوڑے جاتے ہیں ، صرف اس صورت میں جب دونوں الفاظ کا پہلا حرف ایک جیسا ہو۔ فہرست کی تفہیم کا استعمال کیے بغیر ، کوڈ اس طرح نظر آئے گا:

صفت= ['ڈسک'، 'ایون'، 'فوکل'، 'فنکارانہ']
جانور= ['ڈنگو'، 'ارمین'، 'گڑھا'، 'بیور']

کوڈ نام= []

کے لیےایکسمیںصفت:
کے لیےاورمیںجانور:
اگراور.شروع کے ساتھ(ایکس[]):
کوڈ نامشامل کریں(x +''+ اور)

پرنٹ کریں (کوڈ نام)

مثال: if-else شق کے ساتھ تفہیم کی فہرست بنائیں۔

ذیل کی مثال فہرست کے فہم میں if اور else بیانات کا استعمال دکھائے گی۔

number_list= [، ، ، ]
دوسری فہرست۔= [، ، ، ]

نتیجہ= [سچ ہے۔ اگر (x + y)٪ == اور جھوٹا۔ کے لیےایکسمیںnumber_listکے لیےاورمیںدوسری فہرست۔]

پرنٹ کریں (نتیجہ)

دو فہرستوں کے ذریعے لوپ کرتے ہوئے ، فہرست کی تفہیم اوپر چیک کرتی ہے کہ عناصر کے جوڑے کا مجموعہ ہے یا نہیں۔ مندرجہ بالا کوڈ کو چلانے سے آپ [سچ ، جھوٹ ، سچ ، جھوٹ ، جھوٹ ، سچ ، جھوٹ ، سچ ، سچ ، جھوٹ ، سچ ، جھوٹ ، جھوٹ ، سچ ، جھوٹ ، سچ] کو آؤٹ پٹ کے طور پر دکھائیں گے۔ فہرست کو سمجھنے کے بغیر ، کوڈ اس طرح نظر آئے گا:

number_list= [، ، ، ]
دوسری فہرست۔= [، ، ، ]
نتیجہ= []

کے لیےایکسمیںnumber_list:
کے لیےاورمیںایک اور فہرست:
اگر (x + y)٪ == :
نتیجہشامل کریں(سچ ہے۔)
اور:
نتیجہشامل کریں(جھوٹا۔)

پرنٹ کریں (نتیجہ)

نتیجہ

فہرست کی تفہیم صاف اور جامع لوپ بیانات لکھنے کا ایک اچھا طریقہ فراہم کرتی ہے۔ تاہم ، اگر ایک سے زیادہ لوپس اور مشروط بیانات استعمال کیے جائیں تو وہ تیزی سے پیچیدہ اور مشکل سمجھ سکتے ہیں۔ آخر میں ، یہ ایک پروگرامر کی راحت کی سطح پر آتا ہے لیکن عام طور پر شارٹ ہینڈز کو زیادہ استعمال کرنے کے بجائے واضح ، پڑھنے کے قابل اور ڈیبگ کرنے میں آسان کوڈ لکھنا اچھا خیال ہے۔