লিস্ট কম্প্রিহেনশন্স
বেসিক সিনট্যাক্সঃ (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
Was this helpful?