কম্পিউটার টিউটোরিয়াল

পাইথন প্যান্ডাস: সিরিজের প্রতিটি ওয়ার্ডে একাধিক স্পেশাল ক্যারেক্টার থাকার মোট কাউন্ট বের করুন

সমস্যা বিবরণ

একটি স্ট্রিং সিরিজ দেওয়া আছে। লক্ষ্য হলো যেসব ওয়ার্ডে একাধিক (বিশেষ করে ১টির বেশি) স্পেশাল ক্যারেক্টার (পাঙ্কচুয়েশন, সিম্বল ইত্যাদি) আছে, সেগুলোর মোট সংখ্যা গণনা করা।

ইনপুট সিরিজ

0    fruits!!
1    *cakes*
2    $nuts
3    #drinks

সমাধান ১: লুপ ও পাঙ্কচুয়েশন লিস্ট ব্যবহার করে

import pandas as pd
import string

l = ["Fruits!!", "*Cakes*", "$Nuts", "#Drinks"]
data = pd.Series(l)
chars = string.punctuation  # সব পাঙ্কচুয়েশন ক্যারেক্টার
special_char = list(chars)

total_count = 0
for i in data:
    chars_count = 0
    for j in list(i):
        if j in special_char:
            chars_count += 1
    if chars_count > 1:
        total_count += 1

print("একাধিক স্পেশাল ক্যারেক্টার বালা ওয়ার্ডের মোট সংখ্যা:", total_count)

সমাধান ২: রেগুলার এক্সপ্রেশন \W ও ল্যাম্বডা ফিল্টার (সংক্ষিপ্ত)

\W নন-ওয়ার্ড ক্যারেক্টার ম্যাচ করে (অক্ষর, সংখ্যা, আন্ডারস্কোর বাদে সব)।

import pandas as pd
import re

l = ["fruits!!", "*cakes*", "$nuts", "#drinks"]
data = pd.Series(l)

# ফিল্টার: যেসব স্ট্রিং-এ ১টির বেশি নন-ওয়ার্ড ক্যারেক্টার আছে
filtered = pd.Series(filter(lambda x: 1 < len(re.findall(r"\W", x)), l))
print("কাউন্ট:", len(filtered))

আউটপুট

একাধিক স্পেশাল ক্যারেক্টার বালা ওয়ার্ডের মোট সংখ্যা: 2

ব্যাখ্যা

  • "fruits!!" → ২টি '!' → কাউন্ট হয়েছে ✅
  • "*cakes*" → ২টি '*' → কাউন্ট হয়েছে ✅
  • "$nuts" → ১টি '$' → কাউন্ট হয়নি ❌
  • "#drinks" → ১টি '#' → কাউন্ট হয়নি ❌

মোট ২টি ওয়ার্ডে একাধিক স্পেশাল ক্যারেক্টার পাওয়া গেছে।

  1. পাইথনে 'bird' শব্দ তৈরি করতে পারা এমন দৈর্ঘ্য-৪ সাবস্ট্রিং গণনা

  2. পাইথনে দুটি স্ট্রিংয়ের মিলে যাওয়া ক্যারেক্টার কাউন্ট করা (Count matching characters in pair of strings)

  3. পাইথনে x এর চেয়ে বড় সর্বনিম্ন সংখ্যা কীভাবে খুঁজে বের করবেন?

  4. পাইথনে দুইটির বেশি স্ট্রিং থেকে লংগেস্ট কমন সাবস্ট্রিং বের করা