क्या पायथन में वर्णमाला में अक्षरों को क्रमबद्ध करने का एक आसान तरीका है?
के लिए:
a = 'ZENOVW'
मैं लौटना चाहूंगा:
'ENOVWZ'
क्या पायथन में वर्णमाला में अक्षरों को क्रमबद्ध करने का एक आसान तरीका है?
के लिए:
a = 'ZENOVW'
मैं लौटना चाहूंगा:
'ENOVWZ'
जवाबों:
तुम कर सकते हो:
>>> a = 'ZENOVW'
>>> ''.join(sorted(a))
'ENOVWZ'
''.join(sorted(a, reverse=True, key=str.lower))एक उल्टे मामले-असंवेदनशील प्रकार को करने के लिए उपयोग किया जा सकता है। काम हो सकता है।
क्रमबद्ध () समाधान आपको अन्य तारों के साथ कुछ अप्रत्याशित परिणाम दे सकता है।
अन्य समाधानों की सूची:
>>> 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])
सॉर्ट किए गए (s) -> ['i', 'i', 'i', 'i', 'm', 'p', 'p', 's', 's', 's', 's' ]
tuple (संचित (सॉर्ट किया हुआ)) -> ('i', 'ii', 'iii', 'iiii', 'iiiim', 'iiiimp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppsss) ',' iiiimppssss ')
हम टपल के अंतिम सूचकांक (-1) का चयन कर रहे हैं
sorted(a)एक सॉर्ट की गई सूची वापस आ जाएगी, इसलिए स्ट्रिंग तुलना के लिए आपको इसकी आवश्यकता नहीं हैjoin()(नीचे देखें आंसरशीट का उत्तर देखें)।