আমরা জানি পাইথন থেকে কোন স্পেসিফিক key এর ভ্যালু বের করার জন্য আমরা দুইটা পদ্ধতি ব্যবহার করে থাকি। যথাঃ
- indexing এর মাধ্যমে এবং
- get() মেথডের মাধ্যমে।
তো আসলে এই দুইটার মধ্যে পার্থক্য কি? যখন একটা পদ্ধতি ব্যবহার করে আমরা আমাদের কাজ চালাতে পারছি তখন কেনই বা আমরা দ্বিতীয় পদ্ধতি ব্যবহার করব? হ্যা, বাহ্যিক দিক থেকে প্রশ্নটা লজিকালি মনে হলেও এদের ভিতর অবশ্যই পার্থক্য আছে। অর্থাৎ আমরা এই দুইটা পদ্ধতি দুইটা প্রবলেম হ্যান্ডেল করার জন্য ব্যবহার করে থাকি।
নিচের
উধারণগুলা
দেখলে
আশা
করি
আপনি
ক্লিয়ারলি
বুঝতে
পারবেন
যে
এই
দুইটা
কোন
কোন
সময়
ব্যবহার
করতে
হয়।
dic = {"A":1, "B":2}
print(dic["A"])
print(dic["C"])
Output:
Traceback (most recent call last):
File ".\dic.py", line 3, in print (dic["C"])
KeyError: 'C'
এখানে
দেখা
যাচ্ছে
print(dic["A"]) এর
মান dic
ভ্যারিয়েবলে
আছে
কিন্তু
print(dic["C"]) এর
মান dic
ভ্যারিয়েবলে
নেই।
সুতরাং
আমাদেরকে
প্রথম
ক্ষেত্রে 1
প্রিন্ট
করার
কথা
এবং
দ্বিতীয়
মানটি (C)
যেহেতু
নেই
সুতরাং
সেখানে
আমাদের error
দেখানোর
কথা।
কিন্তু
পাইথন
সেটা
করছে
না।
সে
যে
কোন
একটা
মান
না
থাকার
জন্য
পুরা
কোডকে KeyError
হিসাবে
দেখিয়ে
দিচ্ছে।
আর
মূলত
এই
সমস্যা
সমাধানের
জন্য
পাইথনে get()
মেথড
ব্যবহার
করা
হয়।
নিচের
উধারণটা
দেখঃ
dic = {"A":1, "B":2}
print(dic.get("A"))
print(dic.get("C"))
Output:
1
None
অর্থাৎ
এখানে
যে
মানটা
থাকবে
সেটার
জন্য
পাইথন
প্রিন্ট
করবে
এবং
যেটা
থাকবে
না
সেটার
জন্য
বাই
ডিফল্ট None
প্রিন্ট
করবে।
কিন্তু
আমরা
চাইলে
এই
বিল্ট
ইন
বাই
ডিফল্ট Non
লেখাটাকেও
হ্যান্ডেল
করতে
পারব।
সেক্ষেত্রে
আমাদেরকে get()
মেথডের
মধ্যে
আমাদেরকে
লিখে
দিতে
হবে
যে
আমরা
কি
প্রিন্ট
করতে
চাই।
নিচের
উধারণ
দেখুনঃ
dic = {"A":1, "B":2}
print(dic.get("A"))
print(dic.get("C"))
print(dic.get("C","Not Found ! "))
Output:
1
None
Not Found !
Post a Comment