পাইথনে অক্ষরগুলিকে বর্ণমালা অনুসারে বাছাই করার কী সহজ উপায় আছে?
অনেক দূরে:
a = 'ZENOVW'
আমি ফিরে আসতে চাই:
'ENOVWZ'
পাইথনে অক্ষরগুলিকে বর্ণমালা অনুসারে বাছাই করার কী সহজ উপায় আছে?
অনেক দূরে:
a = 'ZENOVW'
আমি ফিরে আসতে চাই:
'ENOVWZ'
উত্তর:
আপনি করতে পারেন:
>>> a = 'ZENOVW'
>>> ''.join(sorted(a))
'ENOVWZ'
''.join(sorted(a, reverse=True, key=str.lower))একটি বিপরীত কেস সংবেদনশীল বাছাই করতে ব্যবহার করা যেতে পারে। সহজ হতে পারে।
>>> a = 'ZENOVW'
>>> b = sorted(a)
>>> print b
['E', 'N', 'O', 'V', 'W', 'Z']
sortedএকটি তালিকা ফেরত দেয়, যাতে আপনি এটি ব্যবহার করে আবার স্ট্রিং তৈরি করতে পারেন join:
>>> c = ''.join(b)
যা প্রতিটি আইটেমের মধ্যে bফাঁকা স্ট্রিংয়ের সাথে একসাথে আইটেমগুলিতে যোগদান করে ''।
>>> print c
'ENOVWZ'
সাজানো () সমাধান আপনাকে অন্যান্য স্ট্রিং সহ কিছু অপ্রত্যাশিত ফলাফল দিতে পারে।
অন্যান্য সমাধানের তালিকা:
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower())))
' belou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s)))
' Bbelou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(s))
' BBbbbbeellou'
আপনি যদি ফলাফলের স্থান থেকে মুক্তি পেতে চান তবে উল্লিখিত ক্ষেত্রে যে কোনও একটিতে ফালা () ফাংশন যুক্ত করুন:
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower()))).strip()
'belou'
পাইথন ফাংশন sortedস্ট্রিংয়ের জন্য ASCII ভিত্তিক ফলাফল প্রদান করে।
ভুল : নীচের উদাহরণে, eএবং dপিছনে Hএবং এর Wকারণে এটি ASCII মান।
>>>a = "Hello World!"
>>>"".join(sorted(a))
' !!HWdellloor'
সঠিক : অর্ডার সাজানো স্ট্রিং লিখতে ছাড়া চিঠির ক্ষেত্রে পরিবর্তন। কোডটি ব্যবহার করুন:
>>> a = "Hello World!"
>>> "".join(sorted(a,key=lambda x:x.lower()))
' !deHllloorW'
আপনি যদি সমস্ত বিরামচিহ্ন এবং সংখ্যাগুলি মুছতে চান। কোডটি ব্যবহার করুন:
>>> a = "Hello World!"
>>> "".join(filter(lambda x:x.isalpha(), sorted(a,key=lambda x:x.lower())))
'deHllloorW'
কোডটি পাইথনের কোনও ইনবিল্ট ফাংশন ব্যবহার না করে বর্ণানুক্রমিকভাবে স্ট্রিং সাজানোর জন্য ব্যবহার করা যেতে পারে
k = ইনপুট ("আবার কোনও স্ট্রিং লিখুন")
li = []
x = len(k)
for i in range (0,x):
li.append(k[i])
print("List is : ",li)
for i in range(0,x):
for j in range(0,x):
if li[i]<li[j]:
temp = li[i]
li[i]=li[j]
li[j]=temp
j=""
for i in range(0,x):
j = j+li[i]
print("After sorting String is : ",j)
হ্রাস () ফাংশনটির সাথে উত্তরটি সত্যিই পছন্দ করেছে। জমা () ব্যবহার করে স্ট্রিংটিকে সাজানোর জন্য এখানে আরও একটি উপায়।
from itertools import accumulate
s = 'mississippi'
print(tuple(accumulate(sorted(s)))[-1])
সাজানো (গুলি) -> ['আমি', 'আই', 'আই', 'আই', 'এম', 'পি', 'পি', 'এস', 'এস', 'এস', 'এস' ]
টিপল (জমা (সাজানো (গুলি)) -> ('আই', 'আইআই', 'আইআইআইআই', 'আইআইআইআইআই', 'আইআইআইআইএম', 'আইআইআইইএমপি', 'আইআইআইইএমপ্প', 'আইআইআইআইএমপিএস', 'আইআইআইআইএমপিএস', 'আইআইআইআইএমপিএস) ',' iiiimppssss ')
আমরা টিপলের শেষ সূচক (-1) নির্বাচন করছি
sorted(a)একটি সাজানো তালিকা ফিরিয়ে দেবে, সুতরাং স্ট্রিং তুলনাগুলির জন্য আপনার প্রয়োজন নেইjoin()(নীচে জিজ্ঞাসাবাদ উত্তরগুলির দেখুন)।