কোনও অভিধানে প্রদত্ত কীটি ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করে দেখুন
কীভাবে করবেন সেই ধারণাটি পেতে প্রথমে আমরা অভিধানে কী কী পদ্ধতিতে কল করতে পারি তা পরীক্ষা করে নিই। পদ্ধতিগুলি এখানে:
d={'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}
Python Dictionary clear() Removes all Items
Python Dictionary copy() Returns Shallow Copy of a Dictionary
Python Dictionary fromkeys() Creates dictionary from given sequence
Python Dictionary get() Returns Value of The Key
Python Dictionary items() Returns view of dictionary (key, value) pair
Python Dictionary keys() Returns View Object of All Keys
Python Dictionary pop() Removes and returns element having given key
Python Dictionary popitem() Returns & Removes Element From Dictionary
Python Dictionary setdefault() Inserts Key With a Value if Key is not Present
Python Dictionary update() Updates the Dictionary
Python Dictionary values() Returns view of all values in dictionary
কীটি ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করার নৃশংস পদ্ধতিটি হতে পারে get()
:
d.get("key")
অন্যান্য দুটি আকর্ষণীয় পদ্ধতি items()
এবং keys()
শব্দগুলি খুব বেশি কাজের বলে মনে হচ্ছে। সুতরাং আসুন পরীক্ষা করা যাক get()
আমাদের জন্য সঠিক পদ্ধতি কিনা । আমাদের ডিক্ট রয়েছে d
:
d= {'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}
মুদ্রণটি আমাদের কাছে থাকা কীটি ফিরে আসবে তা দেখায় None
:
print(d.get('key')) #None
print(d.get('clear')) #0
print(d.get('copy')) #1
কীটি উপস্থিত থাকলে বা না থাকলে তথ্যটি পেতে আমরা এটি ব্যবহার করতে পারি। তবে যদি আমরা একটি একক দিয়ে ডিক তৈরি করি তবে এটি বিবেচনা করুন key:None
:
d= {'key':None}
print(d.get('key')) #None
print(d.get('key2')) #None
get()
কিছু মান হতে পারে যদি সেই পদ্ধতির নেতৃত্ব নির্ভরযোগ্য নয় None
। এই গল্পটির একটি সুখী সমাপ্তি হওয়া উচিত। আমরা যদি in
তুলনামূলক ব্যবহার করি :
print('key' in d) #True
print('key2' in d) #False
আমরা সঠিক ফলাফল পেতে। আমরা পাইথন বাইট কোড পরীক্ষা করতে পারি:
import dis
dis.dis("'key' in d")
# 1 0 LOAD_CONST 0 ('key')
# 2 LOAD_NAME 0 (d)
# 4 COMPARE_OP 6 (in)
# 6 RETURN_VALUE
dis.dis("d.get('key2')")
# 1 0 LOAD_NAME 0 (d)
# 2 LOAD_METHOD 1 (get)
# 4 LOAD_CONST 0 ('key2')
# 6 CALL_METHOD 1
# 8 RETURN_VALUE
এটি দেখায় যে in
তুলনামূলক অপারেটর কেবল আরও নির্ভরযোগ্য নয় তবে তার চেয়েও দ্রুত get()
।
dict.keys()
ডকুমেন্টস.পিথোন.আর / 2 / লাইব্রেরি / স্টাডিটিপস html#dict.keys ডকুমেন্টেশন অনুসারে কলিং কীগুলির একটি তালিকা তৈরি করে তবে আমি অবাক হব যদি এই প্যাটার্নটি অনুবাদ করার জন্য কোনও গুরুতর বাস্তবায়নের জন্য অনুকূলিত না করা হত toif 'key1' in dict:
।