سبق Dictionary Comprehension

Dictionary Comprehension
لسٹ جامعیت (list comprehension) کی طرح ڈکشنری جامعیت بھی پہلے سے موجود ترتیب (sequence) سے ایک ڈکشنری بنائی جا سکتی ہے۔ طریقہ کار لسٹ جامعیت (list comprehension) کی طرح ہے یعنی ایک for لوپ کے ذریعے ڈکشنری کی کنجیاں(keys) اور قیمتیں(values) حاصل کرکے ایک ڈکشنری بنا لیں۔

اس کا عمومی فارمیٹ اس طرح سے ہوتا ہے۔

PHP:
d ={k:v for k, v in sequence}
یہاں ہم رینج فنکشن کے ذریعے ہم نے صفر سے 4 تک اعداد for لوپ میں ایک ایک کرکے حاصل کیا ہے
ڈکشنری کنجی کے طور پر سادہ عدد کو لیا گیا ہے اور کنجی کی قیمت کے طور پر ہر عدد کا مربع حاصل کیا گیا ہے اور کنجی قیمت کے جوڑوں کو ایک ڈکشنری 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)
 
ایک اور مثال

PHP:
#lines is a string containing four lines
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)

پہلی لائن میں ایک اسٹرنگ lines کی بنائی ہے جس میں چار لائنیں موجود ہیں۔
اس کے بعد ڈکشنری جامعیت کے ذریعے ہم نے ایک ڈکشنری بنائی ہے جس کی کنجی لائن کا نمبر ہے جو کہ آخری لفظ ہے ہر لائن کا اور قیمت میں پوری لائن لے لی ہے۔

آخر میں ڈکشنری کو پرنٹ کروا لیا ہے جو بغیر ترتیب کے پرنٹ ہوتی ہے۔


لائن نمبر اور لائن کو اس طریقہ سے بھی پرنٹ کروایا جا سکتا ہے۔

PHP:
#lines is a string containing four lines
lines = '''this is first line1
this is second line2
here is another line3
this is last line4"
'''
 
d = { i+1:line  for i,line in enumerate(lines.splitlines()) }
for num,line in d.items():
    print(num,line)

کوڈ:
1 this is first line1
2 this is second line2
3 here is another line3
4 this is last line4"
 
Top