কম্প্রিহেনশন

পাইথনে ইটারেটর পয়দা করার কয়েকটা সুন্দর পদ্ধতি আছে। পাইথনিক ভাষায় এদের কম্প্রিহেনশন বলে। আরেকটু সুন্দরভাবে বলতে গেলে, কোন একটা সিকুয়েন্স থেকে ইটারেটর পয়দা করার সিস্টেমই হল কম্প্রিহেনশন। একটা কম্প্রিহেনশনে তিনটা পার্ট থাকে।

  • আউটপুট এক্সপ্রেশন

  • ইনপুট সিকুয়েন্স

  • কন্ডিশনাল লজিক (অপশনাল)

লিস্ট কম্প্রিহেনশন

একটা উদাহরণ দেখা যাক।

>>> my_list = [i**2 for i in range(20) if i % 2 == 0]
>>> my_list
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

কাহিনি ব্যাখ্যা করা যাক। পুরো কোডে [i for i in range(20) if i % 2 == 0] অংশটা হচ্ছে আমাদের মাথাব্যথার কারণ। এটাকে ভেঙে টুকটা টুকরা করা যাক।

  • আউটপুট এক্সপ্রেশন: i**2

  • ইনপুট সিকুয়েন্স: for i in range(20)

  • কন্ডিশনাল লজিক (অপশনাল): if i % 2 == 0

আউটপুট এক্সপ্রেশন দিয়ে আমরা বলে দিচ্ছি i এর বিভিন্ন মানের বর্গকে আমরা লিস্ট বানাইয়া my_list এর ভিতর হান্দাইয়া রাখব। কিন্তু i এর মান সাপ্লাই হবে কোথা থেকে? সহজ উত্তর, ইনপুট সিকুয়েন্স থেকে। ইনপুট সিকুয়েন্সে একটা ইটারেবল অবজেক্টকে (এইক্ষেত্রে range(20)) for লুপ দিয়ে ইটারেট করা হয়। প্রতিটি আইটেম i এর এক-একটি মান। মোটামুটি এই দুইটা জিনিস হলেই হয়ে যায়। তবে অপশনাললি আমরা একটা কন্ডিশন বসিয়েছি। কন্ডিশন হল i এর মান 2 দ্বারা নিঃশেষে বিভাজ্য হবে। সেজন্য ইটারেটরের ভিতর যেই মান গুলো 2 দ্বারা বিভাজ্য শুধু সেগুলোই i এর মান হিসাবে বিবেচিত হয়েছে।

সেট কমপ্রিহেনশন

সেট কমপ্রিহেনশনের একটা উদাহরণ দেখা যাক:

>>> a_list = ['Maateen', 'Khan', 'Maksudur', 'a', 'b', 'c']
>>> my_set = {i for i in a_list if len(i) > 1}
>>> my_set
{'Maksudur', 'Khan', 'Maateen'}

ডিকশনারি কমপ্রিহেনশন

ডিকশনারি কমপ্রিহেনশনের একটা উদাহরণ দেখা যাক।

>>> a_list = ['name', 'country', 'career']
>>> b_list = ['Maateen', 'Bangladesh', 'TeleTalk']
>>> my_dict = {i : j for i, j in zip(a_list, b_list)}
>>> my_dict
{'career': 'TeleTalk', 'country': 'Bangladesh', 'name': 'Maateen'}

এখানে zip() ফাংশন ব্যবহার করে আমরা দুইটা লিস্টকে সমান্তরালভাবে ইটারেট করেছি। zip() ফাংশনের বিষয়ে পরে আমরা বিশদ জ্ঞান লাভ করব।

আশা করি, সবাই আমরা কম্প্রিহেনশন বুঝেছি। না বুঝলে অবশ্য দুঃখ পাবার কিছু নাই। আস্তে আস্তে এমনিই মাথায় ঢুকে যাবে।

সহজ ভাষায় পাইথন ৩

বইটি পড়ার সময় প্রতিটি টপিক ধারাবাহিকভাবে বুঝে বুঝে পড়তে হবে এবং হাতে-কলমে অনুশীলন করতে হবে। কোন অংশ বুঝতে সমস্যা হলে ফেসবুক গ্রুপ পাইথন বাংলাদেশে সমস্যাটি পোস্ট করতে পারেন। এখান থেকে অতি দ্রুত সাহায্য-সহযোগীতা পাবেন আপনি।

results matching ""

    No results matching ""