লিস্ট কম্প্রিহেনশন (List Comprehension) হলো Python-এ তালিকা তৈরি করার একটি সংক্ষিপ্ত এবং কার্যকরী পদ্ধতি, যেখানে সাধারণ লুপ এবং কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে একটি নতুন তালিকা তৈরি করা যায়। এটি কোডকে সহজ, সংক্ষিপ্ত এবং আরও রিডেবল করে তোলে। সাধারণত এক লাইনে একটি লিস্ট কম্প্রিহেনশন লিখে বেশ জটিল কাজ করা সম্ভব হয়, যা লুপের মাধ্যমে লিখতে অনেক বেশি কোডের প্রয়োজন হতে পারে।
লিস্ট কম্প্রিহেনশনের সাধারণ গঠন
new_list = [expression for item in iterable if condition]- expression: আইটেমের উপর কার্যকরী অপারেশন বা রূপান্তর।
- item: মূল iterable-এর প্রতিটি উপাদান।
- iterable: একটি তালিকা, টাপল, সেট বা অন্যান্য iterable যেটির উপর লুপ চালানো হচ্ছে।
- condition: (ঐচ্ছিক) একটি শর্ত যা আইটেমকে ফিল্টার করতে ব্যবহৃত হয়। যদি শর্ত পূরণ করে, তবেই আইটেমটি তালিকায় যুক্ত হবে।
লিস্ট কম্প্রিহেনশনের কিছু উদাহরণ
১. সাধারণ তালিকা তৈরি
একটি তালিকা থেকে প্রতিটি উপাদানকে দ্বিগুণ করে নতুন একটি তালিকা তৈরি করা।
numbers = [1, 2, 3, 4, 5]
doubled_numbers = [x * 2 for x in numbers]
print(doubled_numbers) # আউটপুট: [2, 4, 6, 8, 10]২. কন্ডিশনাল লিস্ট কম্প্রিহেনশন
শুধুমাত্র জোড় সংখ্যা দিয়ে একটি নতুন তালিকা তৈরি করা।
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers) # আউটপুট: [2, 4, 6]৩. স্ট্রিং প্রক্রিয়াকরণ
একটি স্ট্রিং-এর প্রতিটি অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করে তালিকা তৈরি করা।
text = "hello"
uppercase_chars = [char.upper() for char in text]
print(uppercase_chars) # আউটপুট: ['H', 'E', 'L', 'L', 'O']৪. নেস্টেড লিস্ট কম্প্রিহেনশন
একটি দ্বিমাত্রিক তালিকা থেকে উপাদানগুলোকে আলাদা করে একটি একমাত্রিক তালিকা তৈরি করা।
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [num for row in matrix for num in row]
print(flat_list) # আউটপুট: [1, 2, 3, 4, 5, 6, 7, 8, 9]৫. শর্ত সহ তালিকা রূপান্তর
একটি তালিকা থেকে সংখ্যা নিয়ে একটি নতুন তালিকা তৈরি করা, যেখানে শুধু জোড় সংখ্যাগুলো দ্বিগুণ এবং বাকি সংখ্যাগুলো অপরিবর্তিত থাকবে।
numbers = [1, 2, 3, 4, 5]
processed_numbers = [x * 2 if x % 2 == 0 else x for x in numbers]
print(processed_numbers) # আউটপুট: [1, 4, 3, 8, 5]লিস্ট কম্প্রিহেনশনের বাস্তব প্রয়োগ
১. ফিল্টারিং এবং রূপান্তর
লিস্ট কম্প্রিহেনশন ব্যবহার করে একটি তালিকা থেকে শুধু পজিটিভ সংখ্যাগুলো বের করা এবং প্রতিটি সংখ্যাকে স্কোয়ার করা।
numbers = [-3, -1, 0, 2, 4, 5]
squared_positives = [x ** 2 for x in numbers if x > 0]
print(squared_positives) # আউটপুট: [4, 16, 25]২. টেক্সট প্রসেসিং
ধরা যাক আমাদের একটি বাক্য রয়েছে এবং আমরা প্রতিটি শব্দের দৈর্ঘ্যের একটি তালিকা তৈরি করতে চাই।
sentence = "List comprehension is very useful"
word_lengths = [len(word) for word in sentence.split()]
print(word_lengths) # আউটপুট: [4, 12, 2, 4, 6]৩. ডিকশনারি কম্প্রিহেনশন
Python এ লিস্ট কম্প্রিহেনশনের মতো ডিকশনারি কম্প্রিহেনশনও রয়েছে, যা ডিকশনারি তৈরিতে কার্যকরী।
words = ["apple", "banana", "cherry"]
word_lengths = {word: len(word) for word in words}
print(word_lengths) # আউটপুট: {'apple': 5, 'banana': 6, 'cherry': 6}৪. সেট কম্প্রিহেনশন
লিস্ট কম্প্রিহেনশনের মতো Python এ সেট কম্প্রিহেনশনও রয়েছে, যা একক মানের একটি সেট তৈরি করে।
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_squares = {x ** 2 for x in numbers}
print(unique_squares) # আউটপুট: {1, 4, 9, 16, 25}৫. ফাইল প্রক্রিয়াকরণ
একটি ফাইল থেকে নির্দিষ্ট শর্তে লাইনগুলো ফিল্টার করে একটি তালিকা তৈরি করা।
# "data.txt" ফাইলে কয়েকটি লাইন রয়েছে
with open("data.txt") as file:
lines = [line.strip() for line in file if "keyword" in line]
print(lines)এখানে, "data.txt" ফাইলের প্রতিটি লাইনে "keyword" শব্দটি থাকলে সেটিকে নতুন তালিকায় যোগ করা হবে।
লিস্ট কম্প্রিহেনশনের সুবিধা
১. কোড সংক্ষিপ্ত করে: লিস্ট কম্প্রিহেনশন একটি লাইনে লুপ, শর্ত এবং রূপান্তরের কাজ সম্পন্ন করতে পারে, যা কোডকে সংক্ষিপ্ত এবং সহজ করে তোলে।
২. রিডেবিলিটি বৃদ্ধি করে: লিস্ট কম্প্রিহেনশন ব্যবহার করে কাজের উদ্দেশ্য দ্রুত বোঝা যায়, কারণ এটি সরাসরি একটি তালিকা তৈরির উদ্দেশ্যে ব্যবহৃত হয়।
৩. দ্রুততর: লিস্ট কম্প্রিহেনশন সাধারণ লুপের তুলনায় দ্রুততর হতে পারে কারণ এটি Python এর অভ্যন্তরীণ অপ্টিমাইজেশনের সুবিধা গ্রহণ করে।
সতর্কতা
- জটিলতা এড়ানো: অত্যধিক জটিল লিস্ট কম্প্রিহেনশন কোডকে বিভ্রান্তিকর করতে পারে, সেক্ষেত্রে সাধারণ লুপ ব্যবহার ভালো।
- শর্তের প্রয়োগ: অত্যাধিক শর্ত বা নেস্টেড কম্প্রিহেনশন ব্যবহার করলে কোডের রিডেবিলিটি কমে যেতে পারে।
সংক্ষেপে
লিস্ট কম্প্রিহেনশন Python এ লিস্ট তৈরি করার একটি দ্রুত এবং কার্যকরী পদ্ধতি, যা লুপ এবং কন্ডিশনালের কাজ সহজ করে তোলে। এটি কোডকে সংক্ষিপ্ত, রিডেবল এবং আরও কার্যকরী করে তোলে, বিশেষ করে যখন তালিকা প্রসেসিং এর প্রয়োজন হয়।