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

পাইথনে স্ট্রিং-এর মধ্যে থাকা সংখ্যা অনুযায়ী সঠিকভাবে সর্ট করা

এই টাইপের সর্ট যেখানে স্ট্রিং-এর মধ্যে থাকা সংখ্যা অনুযায়ী সর্ট করা হয়, এটাকে ন্যাচারেল সর্ট বা হিউম্যান সর্ট বলা হয়। উদাহরণস্বরূপ, আপনার টেক্সট যদি নিচের মতো হয়:

['Hello1', 'Hello12', 'Hello29', 'Hello2', 'Hello17', 'Hello25']

তাহলে আপনি চাইবেন সর্টেড লিস্ট হয়:

['Hello1', 'Hello2', 'Hello12', 'Hello17', 'Hello25', 'Hello29']

না যে:

['Hello1', 'Hello12', 'Hello17', 'Hello2', 'Hello25', 'Hello29']

এটা করার জন্য আমরা sort() যে এক্সট্রা প্যারামিটার নেয় সেটা ব্যবহার করতে পারি। এটি একটি ফাংশন যা লিস্টের এন্ট্রি থেকে কী বের করতে কল হয়। আমরা regex ব্যবহার করে স্ট্রিং থেকে সংখ্যা বের করব এবং টেক্সট ও নম্বর দুইদিকেই সর্ট করব।

import re
def atoi(text):
    return int(text) if text.isdigit() else text
def natural_keys(text):
    return [atoi(c) for c in re.split('(\d+)', text)]
my_list = ['Hello1', 'Hello12', 'Hello29', 'Hello2', 'Hello17', 'Hello25']
my_list.sort(key=natural_keys)
print(my_list)

এটি আউটপুট দেবে:

['Hello1', 'Hello2', 'Hello12', 'Hello17', 'Hello25', 'Hello29']
  1. পাওয়ারপয়েন্ট ফরম্যাট পেইন্টার দিয়ে টেক্সট ফরম্যাট করার পদ্ধতি

  2. অ্যান্ড্রয়েড SQLite-এ স্ট্রিং নম্বর সর্ট করার পদ্ধতি

  3. পাইথনে একাধিক ডকুমেন্ট ফরম্যাটে (CSV, Text, MS Word) স্ট্রিং সার্চ কীভাবে করবেন

  4. পাইথন - মার্জ সোর্টের ঠিক K সংখ্যক রিকারসিভ কল দিয়ে অ্যারে তৈরি করা