केस-असंवेदनशील प्रकार, स्ट्रिंग को जगह में छाँटना, पायथन 2 OR 3 में (पायथन 2.7.17 और पायथन 3.6.9 में परीक्षण किया गया):
>>> x = ["aa", "A", "bb", "B", "cc", "C"]
>>> x.sort()
>>> x
['A', 'B', 'C', 'aa', 'bb', 'cc']
>>> x.sort(key=str.lower) # <===== there it is!
>>> x
['A', 'aa', 'B', 'bb', 'C', 'cc']
कुंजी है key=str.lower
। यहां उन आदेशों को आसान कमांड कॉपी करने के लिए बस कमांड के साथ दिखते हैं, ताकि आप उनका परीक्षण कर सकें:
x = ["aa", "A", "bb", "B", "cc", "C"]
x.sort()
x
x.sort(key=str.lower)
x
ध्यान दें कि यदि आपके तार यूनिकोड के तार हैं, हालाँकि (जैसे u'some string'
), तो केवल पायथन 2 में (इस मामले में पायथन 3 में नहीं) उपरोक्त x.sort(key=str.lower)
कमांड विफल हो जाएगी और निम्न त्रुटि को आउटपुट करेगी:
TypeError: descriptor 'lower' requires a 'str' object but received a 'unicode'
यदि आपको यह त्रुटि मिलती है, तो या तो पायथन 3 में अपग्रेड करें जहां वे यूनिकोड छँटाई को संभालते हैं, या अपने यूनिकोड स्ट्रिंग्स को पहले ASCII स्ट्रिंग्स में परिवर्तित करते हैं, इस तरह एक सूची समझ का उपयोग करते हुए:
# for Python2, ensure all elements are ASCII (NOT unicode) strings first
x = [str(element) for element in x]
# for Python2, this sort will only work on ASCII (NOT unicode) strings
x.sort(key=str.lower)
संदर्भ:
- https://docs.python.org/3/library/stdtypes.html#list.sort
- अजगर में एक यूनिकोड स्ट्रिंग को स्ट्रिंग में बदलें (अतिरिक्त प्रतीकों वाले)
- https://www.programiz.com/python-programming/list-comprehension