سبق ڈکشنری Dictionary

ڈکشنری لسٹ کی مانند ہوتی ہے جس میں آپ اراکین کو شامل کر سکتے ہیں ، نکال سکتے ہیں ، بدل سکتے ہیں۔ ڈکشنری کے اراکین صرف نمبروں سے منسلک نہیں ہوتے جیسا کہ لسٹ میں ہوتا ہے۔
ڈکشنری میں ہر رکن دو حصوں پر مشتمل ہوتا ہے
کلید (key)
قیمت (value)

کسی بھی کلید کو طلب کرنے سے اس سے جڑی قیمت تک رسائی مل جاتی ہے۔ لسٹ کو ڈکشنری کی ایک خاص قسم سمجھا جا سکتا ہے جس میں ہر رکن کی کلید(key) ایک نمبر ہوتا ہے جو ترتیب سے ہوتا ہے۔


ڈکشنری کی مثال ایک ایڈریس بک جیسی ہے جس میں کوئی بھی ایڈریس یا کسی شخص کا پتہ ڈھونڈنا ہو تو ہمیں اس کا صرف نام معلوم ہونا چاہیے۔ ہم کنجی(key) کو منسلک کریں گے قیمت (values) سے یعنی نام ہماری کنجی ہو گی اور اس سے جڑی تفصیل ہماری ویلیو ۔ کنجی(key) کا منفرد ہونا ضروری ہے کیونکہ اگر یہ منفرد نہ ہو تو ہم درست معلومات تک نہیں پہنچ سکیں گے۔

کنجی کے طور پر ہم صرف ناقابل تبدیل (immutable) شے (object) کو ہی استعمال کر سکتے ہیں جیسا کہ اسٹرنگ مگر ویلیو کے لیے کچھ بھی استعمال کر سکتے ہیں۔ جس کا بنیادی مطلب ہے کہ کنجی کے لیے صرف سادہ شے ہی استعمال کریں۔

کنجی اور قیمت کے جوڑوں کو ڈکشنری میں اس طرح سے ظاہر کیا جاتا ہے ۔

{ d = {key1 : value1, key2 : value2

کنجی قیمت (key value) کے جوڑے کو آپس میں قولون ( : ) سے علیحدہ کیاجاتا ہے اور جوڑوں کو کومہ( , ) کی مدد سے اور پورے مجموعہ کو لہری(curly) بریکٹ میں بند کیا جاتا ہے۔
 
کنجی قیمت (key-value) جوڑا کسی ترتیب سے نہیں ہوتا اور اگر اسے کسی ترتیب میں لانا ہو تو اس کے لیے سارٹ کا فنکشن استعمال کرنا پڑتا ہے۔

PHP:
ab = {  'Sabir'  : 'sabir@urduweb.org',
        'Nimra'    : 'nimra@urdumehfil.org',
        'Muhammad Ahmad' : 'mahmad@urduplanet.net',
        'Spammer'  : 'spammer@hotmail.com'
    }
 
print("Sabir's address is", ab['Sabir'])
 
# Deleting a key-value pair
del ab['Spammer']
 
print('\nThere are {0} contacts in the address-book\n'.format(len(ab)))
 
for name, address in ab.items():
    print('Contact {0} at {1}'.format(name, address))
 
# Adding a key-value pair
ab['Guido'] = 'guido@python.org'
 
if 'Guido' in ab:
    print("\nGuido's address is", ab['Guido'])
 
HTML:
Output:
 
Sabir's address is sabir@urduweb.org
 
There are 3 contacts in the address-book
 
Contact Sabir at sabir@urduweb.org
 
Contact Nimra at sabir@urduweb.org
 
Contact Muhammadahmad at mahmad@urduplanet.net
 
 
Guido's address is guido@python.org
 
ڈکشنری میں بھی اراکین کو ڈیلیٹ ، شامل اور اپڈیٹ کیا جا سکتا ہے۔ اس کی مثالیں ہم اوپر دیکھ چکے ہیں ۔

یہاں ڈکشنری ab میں صرف ایک رکن جس کی کنجی (key ۔) Spammer کو ڈیلیٹ کیا گیا ہے ۔
PHP:
# Deleting a key-value pair
del ab['Spammer']

ڈکشنری میں ڈیلیٹ del کے ساتھ ساتھ کلیئر کا طریقہ بھی استعمال کیا جا سکتا ہے۔
dict.clear

ڈکشنری میں ایک مزید رکن کو اس طریقہ سے شامل کیا گیا ۔

PHP:
# Adding a key-value pair
ab['Guido'] = 'guido@python.org'

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

PHP:
#Adding new element with integer key in dictionary
ab[2012] = "Current Year"
 
Dictionary View Objects
ڈکشنری میں تین view objects موجود ہیں جو ڈکشنری کے اراکین کا متحرک منظر پیش کرتے ہیں یعنی جیسے ہی ڈکشنری کے مندرجات تبدیل ہوتے ہیں تو منظر میں تبدیلی دکھائی دیتی ہے۔​
PHP:
dict.keys()
dict.values()
dict.items()
اگر ڈکشنری کی صرف کنجیاں (keys) حاصل کرنی ہو تو اس کے لیے ایک طریقہ ()dict.keys ڈکشنری پر استعمال کیا جا سکتا ہے۔​

PHP:
ab = {  'Sabir'  : 'sabir@urduweb.org',
        'Nimra'    : 'nimra@urdumehfil.org',
        'Muhammad Ahmad' : 'mahmad@urduplanet.net',
    }
 
print(ab.keys())
 
names = ab.keys()
for name in names:
    print(name)

کوڈ:
Output:
 
dict_keys(['Muhammad Ahmad', 'Nimra', 'Sabir'])
Muhammad Ahmad
Nimra
Sabir

جس طرح اوپر ڈکشنری میں سے صرف کنجیاں (keys) حاصل کی گئیں ویسے ہی قیمتیں (values) بھی حاصل کی جا سکتی ہیں جس کے لیے طریقہ ()dict.values استعمال کیا جاتا ہے۔​
PHP:
print(ab.values())
 
emails = ab.values()
 
for email in emails:
    print(email)

HTML:
Output:
 
dict_values(['mahmad@urduplanet.net', 'sabir@urduweb.org', 'nimra@urdumehfil.org'])
mahmad@urduplanet.net
sabir@urduweb.org
nimra@urdumehfil.org


ڈکشنری میں سے کنجیاں (keys) اور قیمتیں (values) دونوں حاصل کی جا سکتی ہیں جس کے لیے طریقہ ()dict.items استعمال کیا جاتا ہے۔​

PHP:
ab = {  'Sabir'  : 'sabir@urduweb.org',
        'Nimra'    : 'nimra@urdumehfil.org',
        'Muhammad Ahmad' : 'mahmad@urduplanet.net',
    }
 
print(ab.items())
 
items = ab.items()
 
for item in items:
    print(item)

HTML:
Output:
 
dict_items([('Sabir', 'sabir@urduweb.org'), ('Muhammad Ahmad', 'mahmad@urduplanet.net'), ('Nimra', 'nimra@urdumehfil.org')])
('Sabir', 'sabir@urduweb.org')
('Muhammad Ahmad', 'mahmad@urduplanet.net')
('Nimra', 'nimra@urdumehfil.org')
 
Built-in Dictionary Functions
چند عام استعمال کے ڈکشنری فنکشن مندرجہ ذیل ہیں

کوڈ:
cmp(dict1, dict2)

اس فنکشن میں ہم دو ڈکشنریوں کا موازنہ کر سکتے ہیں۔
اگر دونوں برابر ہوں تو فنکشن 0 واپس آتا ہے ورنہ 1-

کوڈ:
# total length of dictionary equal to number of items in dictionary
len(dict)

اس فنکشن کے ذریعے ڈکشنری میں موجود آئٹم کی تعداد کا نمبر واپس کیا جاتا ہے۔

Built-in Dictionary Methods
چند عام استعمال کے ڈکشنری طریقے

کوڈ:
#Removes all elements of dictionary dict
dict.clear()

کوڈ:
dict.fromkeys()
#Create a new dictionary with keys from seq and values set to value.

کوڈ:
dict.get(key, default=None)
#For key key, returns value or default if key not in dictionary

کوڈ:
dict.has_key(key)
#Returns true if key in dictionary dict, false otherwise

کوڈ:
dict.items()
#Returns a list of dict's (key, value) tuple pairs

کوڈ:
dict.keys()
#Returns list of dictionary dict's keys

کوڈ:
dict.setdefault(key, default=None)
#Similar to get(), but will set dict[key]=default if key is not already in dict

کوڈ:
dict.update(dict2)
#Adds dictionary dict2's key-values pairs to dict

کوڈ:
dict.values()
#Returns list of dictionary dict2's values
 
Top