Filter – ফ্রি পাইথন কোর্স ২০২০ – ক্লাস ২৮

map() ইটারেবলের প্রতিটি উপাদান একটি ফাংশনের মাধ্যমে পাস করে এবং ফাংশনটির মধ্য দিয়ে সমস্ত উপাদানগুলির ফলাফল প্রদান করে, filter() প্রথমে, ফাংশনটি বুলিয়ান মানগুলির (True বা False) দেখে এবং তারপরে প্রতিটি উপাদান পাস করে ফাংশনটির মাধ্যমে ইটারেবলগুলির মধ্যে, False “ফিল্টারিং” করে বাদ দেয়। এটিতে নিম্নলিখিত বাক্য গঠন রয়েছে:

filter(func, iterable)

filter() সম্পর্কে নিম্নলিখিত পয়েন্টগুলি লক্ষ করা উচিত:

  • map() এর বিপরীতে, কেবলমাত্র একটি ইটারেবল দেওয়া প্রয়োজন।
  • বুলিয়ান টাইপ ফিরিয়ে আনতে func আর্গুমেন্টের প্রয়োজন। যদি এটি না হয় তবে ফিল্টার সহজেই এতে পাঠানো ইটারেবল রিটার্ন করে দেয়। এছাড়াও, কেবলমাত্র একটি ইটারেবল আবশ্যক, এটি অন্তর্নিহিত যে func শুধুমাত্র একটি আর্গুমেন্ট গ্রহণ করতে পারবে।
  • ফিল্টার ইটারেবলে প্রতিটি উপাদান func এর মাধ্যমে পাস করে এবং কেবল যা True মূল্যায়ন করে তা ফিরিয়ে দেয়। মানে, এটি ঠিক সেখানে রয়েছে – এটি একটি “filter“।

আসুন কিছু উদাহরণ দেখি:

নীচে একটি রসায়ন পরীক্ষায় ১০ জন শিক্ষার্থীর স্কোরের একটি তালিকা (ইটারেবল) রয়েছে। ফিল্টার ব্যবহার করে যারা ৭৫ এরও বেশি স্কোর সহ উত্তীর্ণ হয়েছে তাদের ফিল্টার আউট করি।

# Python 3
scores = [66, 90, 68, 59, 76, 60, 88, 74, 81, 65]

def is_A_student(score):
    return score > 75

over_75 = list(filter(is_A_student, scores))

print(over_75)

ফলাফল:

[90, 76, 88, 81]

পরবর্তী উদাহরণটি প্যালিনড্রোম সনাক্তকারী হবে। একটি “প্যালিনড্রোম” হল একটি শব্দ, শব্দগুচ্ছ বা ক্রম যা বাম থেকে ডানে পরলে যেরকম হয় ডানথেকে বামে পরলেও ঠিক তেমনি হয়(যেমন: RACECAR, 2552, )। সন্দেহজনক প্যালিনড্রোমস এর টাপল (পুনরাবৃত্ত) থেকে যে শব্দগুলি প্যালিনড্রোমগুলি ফিল্টার করা যাক।

# Python 3
dromes = ("demigod", "rewire", "madam", "freer", "anutforajaroftuna", "kiosk")

palindromes = list(filter(lambda word: word == word[::-1], dromes))

print(palindromes)

ফলাফল:

['madam', 'anutforajaroftuna']

এরপর আলোচনা হবে reduce নিয়ে।

Leave a Comment