سبق ڈکشنری (Dictionary)

محمداحمد

لائبریرین
ڈکشنری (Dictionary)

ڈکشنری (Dictionary) یا لغت کا لفظ آپ کے لئے یا ہمارے لئے نیا نہیں ہے۔ جب بھی کبھی کوئی نیا لفظ ہمارے سامنے آتا ہے تو ہمیں ڈکشنری دیکھنے کا خیال آتا ہے۔ جب ہم ڈکشنری میں اپنا مطلوبہ لفظ ڈھونڈتے ہیں اور جب وہ لفظ (جو ڈکشنری میں ایک ہی بار لکھا ہوتا ہے) مل جاتا ہے تو اس کے ساتھ ہی ہمیں اس لفظ کے معنی اور مفہوم بھی لکھا مل جاتا ہے۔

پائتھون میں بھی ڈکشنری کی اصطلاح کم و بیش انہی معنوں میں استعمال کی جاتی ہے یعنی کنجیاں(keys) الفاظ اور ان سے جڑی قیمتیں(values)۔

ایک خالی ڈکشنری بنانے کے لئے ہم dict() استعمال کرتے ہیں یا پھر محض لہری بریکٹس (curly brackets) ہی سے کام چلا سکتے ہیں۔

ایسے :
PHP:
d = dict()

یا پھر ایسے:
PHP:
d = {}

لسٹ کے برخلاف ڈکشنری میں اشاریہ (indexing)کے لئے ہر ٹائپ کا ڈیٹا استعمال ہو سکتا ہے (یعنی ڈکشنری کی اشاریہ سازی (indexing) "کنجی" (Key) کے ذریعے ہوتی ہے اور "کلید" اسٹرنگ، integer، float کچھ بھی ہو سکتی ہے) جبکہ لسٹ میں صرف Integer ہی اشاریہ سازی(indexing) کے لئے کام آتے تھے۔

یوں سمجھیے کہ ڈکشنری "کنجی" (Key) اور "قدر" (Value) کا ایسا سیٹ ہوتی ہے جو باہم مربوط ہوتی ہیں۔ کنجی(key) کو بلانے پر قدر (value) بھی کھنچی چلی آتی ہے۔

مثال:

dict_zpsb3f3b274.png
اب درج ذیل کوڈ دیکھیے:

PHP:
>>> d = {}
>>> d
{}
>>> d["Python"]="A very large snake"
>>> d["Programming"]="To write a series of instructions"
>>> d["Language"]="a system of communication"
>>> d
{'Python': 'A very large snake', 'Programming': 'To write a series of instructions', 'Language': 'a system of communication'}

اس کوڈ میں سب سے پہلے ہم نے ایک ویری ایبل D میں ایک خالی ڈکشنری بنائی اور پھر تفویضی عامل (assignment operator) "=" کے ذریعے تین کنجیاں (keys) اور اُن کی قدریں (values) اس ڈکشنری میں شامل کروا دیں۔

دیکھیے ہماری تین لفظوں کی ڈکشنری تیار ہوگئی ہے۔ :)

ہم ڈکشنری میں براہِ راست بھی key اور values ڈال سکتے ہیں۔

ایسے:
PHP:
>>> monthdict = {1:'JAN',2:'FEB',3:'MAR',4:'APR',5:'MAY',6:'JUN',7:'JUL',8:'AUG',9:'SEP',
10:'OCT',11:'NOV',12:'DEC'}
>>> monthdict
{1: 'JAN', 2: 'FEB', 3: 'MAR', 4: 'APR', 5: 'MAY', 6: 'JUN', 7: 'JUL', 8: 'AUG', 9: 'SEP', 10: 'OCT', 11: 'NOV', 12: 'DEC'}
>>> monthdict[5]
'MAY'
>>> monthdict[12]
'DEC'

کنجی قیمت key-value کے جوڑے کو آئٹم(item) بھی کہا جاتا ہے۔
 
dict Function
dict فنکشن کے ذریعے ہم دوسری ڈکشنری، لسٹ یا ٹپل سے بھی ڈکشنری بنا سکتے ہیں۔ کسی بھی سلسلہ (sequence) جس میں جوڑے موجود ہوں اس سے ڈکشنری بنائی جا سکتی ہے۔

اس مثال میں ہم نے دو ٹپل (tuples) کے جوڑے لیے ہیں اور انہیں items کی لسٹ میں محفوظ کر لیا ہے۔
items لسٹ کو dict فنکشن میں بھیج کر ایک ڈکشنری بنائی گئی ہے جس کا نام d رکھا گیا ہے۔

PHP:
>>> items = [('name', 'Gumby'), ('age', 42)]
>>> d = dict(items)
>>> d
{'age': 42, 'name': 'Gumby'}


ڈکشنری کو کلیدی لفظ دلائل (keyword arguments) کے ذریعے بھی بنایا جا سکتا ہے ۔

PHP:
>>> d = dict(name='Munna',age=17)
>>> d
{'age': 17, 'name': 'Munna'}
 
لسٹوں کی مدد سے ڈکشنری بنانا
ڈکشنری بنانے کا ایک طریقہ دو لسٹوں کی مدد سے بھی ہے۔

پہلے ہم نے دو لسٹ بنائی ہیں ایک مہینوں کے نام کی اور دوسری مہینوں کے دنوں کی تعداد کی۔
پھر ہم نے zip فنکشن استعمال کرتے ہوئے دونوں لسٹوں کو جوڑ کر ایک ڈکشنری بنائی۔
اس کے بعد ہم نے لسٹ پرنٹ کرا لی ہے۔

PHP:
>>> monname = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']
 
>>> monnum  = [31,28,31,30,31,30,31,31,30,31,30,31]
 
>>> month = dict(zip(monname,monnum))
 
>>> print(month)
{'FEB': 28, 'DEC': 31, 'APR': 30, 'AUG': 31, 'JAN': 31, 'OCT': 31, 'JUN': 30, 'SEP': 30, 'JUL': 31, 'MAY': 31, 'MAR': 31, 'NOV': 30}
 
Top