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

পাইথন: স্ট্রিং-এর সংখ্যাসূচক অংশ অনুযায়ী স্ট্রিং লিস্ট সাজানো

যখন স্ট্রিং-এর মধ্যে এম্বেড করা সংখ্যার ভিত্তিতে স্ট্রিং লিস্ট সাজাতে হয়, তবে রেগুলার এক্সপ্রেশন (regex) ব্যবহার করে সংখ্যা বের করে সেটিকে সর্ট কি হিসেবে ব্যবহার করা হয়।

উদাহরণ

import re

def extract_first_number(s):
    """স্ট্রিং থেকে প্রথম সংখ্যা বের করে ইন্টিজার হিসেবে ফেরত দেয়"""
    match = re.search(r'\d+', s)
    return int(match.group()) if match else 0

my_list = ["pyt23hon", "fu30n", "lea14rn", "co00l", "ob8uje3345t"]
print("মূল লিস্ট:", my_list)

# কাস্টম কি ফাংশন দিয়ে সর্ট
my_list.sort(key=extract_first_number)

print("সাজানো লিস্ট:", my_list)

আউটপুট

মূল লিস্ট: ['pyt23hon', 'fu30n', 'lea14rn', 'co00l', 'ob8uje3345t']
সাজানো লিস্ট: ['co00l', 'ob8uje3345t', 'lea14rn', 'pyt23hon', 'fu30n']

ব্যাখ্যা

  • re.search(r'\d+', s) — স্ট্রিং-এ প্রথম সংখ্যা খুঁজে বের করে
  • co00l → 00 → ০ (সর্বনিম্ন)
  • ob8uje3345t → ৮ (দ্বিতীয়)
  • lea14rn → ১৪ (তৃতীয়)
  • pyt23hon → ২৩ (চতুর্থ)
  • fu30n → ৩০ (সর্বোচ্চ)

উন্নত সংস্করণ: সব সংখ্যা বিবেচনা

def extract_all_numbers(s):
    """স্ট্রিং-এর সব সংখ্যা বের করে টাপল হিসেবে ফেরত দেয়"""
    return tuple(map(int, re.findall(r'\d+', s)))

# টাপল কম্পারিজন: প্রথম সংখ্যা, তারপর দ্বিতীয়, ইত্যাদি
my_list.sort(key=extract_all_numbers)

এটি একাধিক সংখ্যা থাকলে আরও নির্ভুল সর্টিং দেয়।

  1. পাইথনে লিস্টে সাবলিস্ট কতবার নির্দিষ্ট এলিমেন্ট ধারণ করে (Count sublists containing given element)

  2. পাইথনে স্ট্রিংয়ের লিস্টকে টাপলের লিস্টে রূপান্তর

  3. পাইথনে এলিমেন্টের দৈর্ঘ্য অনুযায়ী লিস্ট সর্ট করা

  4. পাইথনে স্ট্রিংয়ের লিস্ট সর্ট করা