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

বেসিক সিনট্যাক্সঃ (values) = [(expression) for in (data) in (collection)]

এই এক্সপ্রেশনকে বোঝার জন্য আমরা এর সাধারন পদ্ধতি দেখিঃ

    values = []
    for (data) in (collection):
        (values).append((expression))

এখানে expression এর ভ্যালু data হতে পারে বা যে কোন অপারেশন হতে পারে।

>>> numbers = [1,2,3,4,5,6]
>>> numbers_list = []
>>> for n in numbers:
    numbers_list.append(n)

>>> print(numbers_list)
[1, 2, 3, 4, 5, 6]

এই প্রোগ্রামটাকে যদি কম্প্রিহেনশন ব্যবহার করে লিখা হয় তাহলে এমন হবে,

>>> numbers_list = [n for n in numbers]      
>>> numbers_list  
[1, 2, 3, 4, 5, 6]

এখানে প্রথম n হল expression এবং দ্বিতীয় n হল data এর ভ্যালু আবার যখন if ব্যবহার করব তখন আমাদের সিনট্যাক্স টা হবে এমনঃ [(expression) for (data) in (collection) if (condition)] এর সাধারন পদ্ধতি হলঃ

    (values) = []
    for (data) in (collection):
        if (condition):
              (values).append((expression))

উদাহরণ ২:

>>>even_numbers = []
>>>even_numbers = [ n for n in numbers if n%2 == 0 ]
[2, 4, 6]       #output

এই সম্পূর্ন কোড কে আরও ছোট করে ১ লাইনে লিখা যায়।

>>>even_numbers = print(list([n for n in numbers if n%2 == 0]))
[2, 4, 6]       #output

আমরা প্রথমে যে আউটপুট পাচ্ছি সেগুলোকে লিস্ট অবজেক্টে পরিবর্তন করে নিয়েছি এবং print() ফাংশনে পাস করে দিয়েছি।

উদাহরণ ৩:

my_list = []
for letter in 'abcd':
    for num in numbers:
        my_list.append((letter,num))

print(my_list)

এই প্রোগ্রাম লিখার জন্য নেস্টেড লিস্ট কম্প্রহেনশন ব্যবহার করতে হবে।

my_list=[(letter,num) for letter in 'abcd' for num in numbers ]
print(my_list)

ফর লুপ দুটোর স্থান পরিবর্তন করে আউটপুটের ভিন্নতার কারণ বিশ্লেষণ করার চেষ্টা কর।

Last updated