python - কিভাবে স্ট্রিং একটি তালিকা সাজান?




string sorting (6)

অথবা হতে পারে:

names = ['Jasmine', 'Alberto', 'Ross', 'dig-dog']
print ("The solution for this is about this names being sorted:",sorted(names, key=lambda name:name.lower()))

পাইথন একটি বর্ণানুক্রমিক সাজানোর তালিকা তৈরি করার সেরা উপায় কি?


কিন্তু কিভাবে এই ভাষা নির্দিষ্ট সাজানোর নিয়ম হ্যান্ডেল? এটা অ্যাকাউন্টে লোকেল নিতে না?

না, list.sort() একটি জেনেরিক সাজানোর ফাংশন। আপনি যদি ইউনিকোডের নিয়ম অনুসারে সাজান করতে চান তবে আপনাকে একটি কাস্টম সোর্স কী ফাংশন সংজ্ঞায়িত করতে হবে। আপনি pyuca মডিউল ব্যবহার করার চেষ্টা করতে পারেন, কিন্তু আমি জানি না এটি কতটা সম্পূর্ণ।


এটি sorted() ফাংশন উল্লেখযোগ্য মূল্যও:

for x in sorted(list):
    print x

এটি আসল তালিকাটি পরিবর্তন না করে একটি তালিকাটির একটি নতুন, সাজানো সংস্করণ প্রদান করে।


ধরুন s = "ZWzaAd"

উপরের স্ট্রিং সাজানোর জন্য সহজ সমাধান এক নিচে হবে।

print ''.join(sorted(s))

স্ট্রিং সাজানোর সঠিক উপায় হল:

import locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') # vary depending on your lang/locale
assert sorted((u'Ab', u'ad', u'aa'), cmp=locale.strcoll) == [u'aa', u'Ab', u'ad']

# Without using locale.strcoll you get:
assert sorted((u'Ab', u'ad', u'aa')) == [u'Ab', u'aa', u'ad']

mylist.sort(key=lambda x: x.lower()) এর পূর্ববর্তী উদাহরণ ASCII-only প্রসঙ্গগুলির জন্য সূক্ষ্ম কাজ করবে।


list.sort()

এটা সত্যিই যে সহজ :)





sorting