محب علوی
مدیر
Dictionary Comprehension
لسٹ جامعیت (list comprehension) کی طرح ڈکشنری جامعیت بھی پہلے سے موجود ترتیب (sequence) سے ایک ڈکشنری بنائی جا سکتی ہے۔ طریقہ کار لسٹ جامعیت (list comprehension) کی طرح ہے یعنی ایک for لوپ کے ذریعے ڈکشنری کی کنجیاں(keys) اور قیمتیں(values) حاصل کرکے ایک ڈکشنری بنا لیں۔
اس کا عمومی فارمیٹ اس طرح سے ہوتا ہے۔
یہاں ہم رینج فنکشن کے ذریعے ہم نے صفر سے 4 تک اعداد for لوپ میں ایک ایک کرکے حاصل کیا ہے
ڈکشنری کنجی کے طور پر سادہ عدد کو لیا گیا ہے اور کنجی کی قیمت کے طور پر ہر عدد کا مربع حاصل کیا گیا ہے اور کنجی قیمت کے جوڑوں کو ایک ڈکشنری dict_square میں محفوظ کرکے پرنٹ کروا لیا ہے۔
اس مثال میں ہم نے چار لائنوں کو ایک اسٹرنگ میں رکھا ہے جس کا نام ہے lines ۔
ڈکشنری جامعیت(dictionary comprehension) میں اسٹرنگ کی لائنوں کو ایک ایک لائن میں توڑ لیا گیا ہے۔
اس کے بعد ڈکشنری کی کنجی(key) بنانے کے لیے لائن کو کو لفظوں کے درمیان وقفہ کی بنیاد پر لفظوں میں تقسیم کر لیا گیا ہے اور آخر سے پہلا لفظ بطور کنجی منتخب کر لیا گیا ہے ۔
ہر کنجی کی قیمت(value) کے طور پر پوری لائن کو منتخب کیا گیا ہے۔
لسٹ جامعیت (list comprehension) کی طرح ڈکشنری جامعیت بھی پہلے سے موجود ترتیب (sequence) سے ایک ڈکشنری بنائی جا سکتی ہے۔ طریقہ کار لسٹ جامعیت (list comprehension) کی طرح ہے یعنی ایک for لوپ کے ذریعے ڈکشنری کی کنجیاں(keys) اور قیمتیں(values) حاصل کرکے ایک ڈکشنری بنا لیں۔
اس کا عمومی فارمیٹ اس طرح سے ہوتا ہے۔
PHP:
d ={k:v for k, v in sequence}
ڈکشنری کنجی کے طور پر سادہ عدد کو لیا گیا ہے اور کنجی کی قیمت کے طور پر ہر عدد کا مربع حاصل کیا گیا ہے اور کنجی قیمت کے جوڑوں کو ایک ڈکشنری dict_square میں محفوظ کرکے پرنٹ کروا لیا ہے۔
PHP:
>>> dict_square = {n: n**2 for n in range(5)}
>>> dict_square
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
اس مثال میں ہم نے چار لائنوں کو ایک اسٹرنگ میں رکھا ہے جس کا نام ہے lines ۔
ڈکشنری جامعیت(dictionary comprehension) میں اسٹرنگ کی لائنوں کو ایک ایک لائن میں توڑ لیا گیا ہے۔
اس کے بعد ڈکشنری کی کنجی(key) بنانے کے لیے لائن کو کو لفظوں کے درمیان وقفہ کی بنیاد پر لفظوں میں تقسیم کر لیا گیا ہے اور آخر سے پہلا لفظ بطور کنجی منتخب کر لیا گیا ہے ۔
ہر کنجی کی قیمت(value) کے طور پر پوری لائن کو منتخب کیا گیا ہے۔
PHP:
lines = '''this is first line1
this is second line2
here is another line3
this is last line4"
'''
d = { line.split()[-1]:line for line in lines.splitlines() }
print(d)