python - पायथन में स्ट्रिंग से लोअरकेस को कैसे परिवर्तित करें




string unicode (6)

क्या स्ट्रिंग को अपरकेस से, या यहां तक ​​कि भाग अपरकेस को लोअरकेस में बदलने का कोई तरीका है?

जैसे किलोमीटर -> किलोमीटर।


पायथन में स्ट्रिंग से लोअरकेस को कैसे परिवर्तित करें?

क्या पूरे उपयोगकर्ता इनपुट स्ट्रिंग को अपरकेस से परिवर्तित करने का कोई तरीका है, या यहां तक ​​कि भाग अपरकेस को लोअरकेस में भी परिवर्तित करने का कोई तरीका है?

जैसे किलोमीटर -> किलोमीटर

ऐसा करने का कैननिकल पाइथोनिक तरीका है

>>> 'Kilometers'.lower()
'kilometers'

हालांकि, यदि उद्देश्य असंवेदनशील मिलान करना है, तो आपको केस-फोल्डिंग का उपयोग करना चाहिए:

>>> 'Kilometers'.casefold()
'kilometers'

यहाँ पर क्यों:

>>> "Maße".casefold()
'masse'
>>> "Maße".lower()
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower() == "Maße".lower()
False
>>> "MASSE".casefold() == "Maße".casefold()
True

यह पायथन 3 में एक स्ट्र विधि है, लेकिन पायथन 2 में, आप पीआईआईसीयू या पी 2 2केसफोल्ड को देखना चाहेंगे - कई उत्तरों ने इसे यहां संबोधित किया है ।

यूनिकोड पायथन 3

पायथन 3 नियमित तारों के रूप में यूनिकोड को संभालता है:

>>> string = 'Километр'
>>> string
'Километр'
>>> string.lower()
'километр'

यूनिकोड पायथन 2

लेकिन पाइथन 2, नीचे, एक खोल में चिपकाया नहीं है, utf-8 का उपयोग करके शाब्दिक को बाइट्स की एक स्ट्रिंग के रूप में एन्कोड करता है।

और lower यूनिकोड ऑब्जेक्ट्स के बारे में जागरूक किसी भी बदलाव को मैप नहीं करता है, इसलिए हमें एक ही स्ट्रिंग मिलती है।

>>> string = 'Километр'
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.lower()
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.lower()
Километр

स्क्रिप्ट में, पाइथन गैर-एसीसी (पायथन 2.5 के रूप में, और पायथन 2.4 में चेतावनी) बाइट्स को स्ट्रिंग में होने वाले स्ट्रिंग में होने पर ऑब्जेक्ट करेगा, क्योंकि इच्छित कोडिंग संदिग्ध होगा। उस पर और अधिक के लिए, docs और पीईपी 263 में यूनिकोड कैसे करें

यूनिकोड अक्षर का प्रयोग करें, str अक्षर नहीं

इसलिए हमें इस रूपांतरण को संभालने के लिए एक unicode स्ट्रिंग की आवश्यकता है, जो यूनिकोड शाब्दिक के साथ आसानी से पूरा किया गया है:

>>> unicode_literal = u'Километр'
>>> print unicode_literal.lower()
километр

ध्यान दें कि बाइट str बाइट्स से पूरी तरह अलग हैं - बचने वाले चरित्र '\u' बाद 2-बाइट चौड़ाई, या इन unicode अक्षरों के 16 बिट प्रतिनिधित्व के बाद है:

>>> unicode_literal
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> unicode_literal.lower()
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'

अब अगर हमारे पास केवल एक str के रूप में है, तो हमें इसे unicode परिवर्तित करने की आवश्यकता है। पायथन का यूनिकोड प्रकार एक सार्वभौमिक एन्कोडिंग प्रारूप है जिसमें अधिकांश अन्य एन्कोडिंग के सापेक्ष कई advantages । हम str.decode को unicode कनवर्ट करने के लिए कोडेक के साथ unicode कन्स्ट्रक्टर या str.decode विधि का उपयोग कर सकते unicode :

>>> unicode_from_string = unicode(string, 'utf-8') # "encoding" unicode from string
>>> print unicode_from_string.lower()
километр
>>> string_to_unicode = string.decode('utf-8') 
>>> print string_to_unicode.lower()
километр
>>> unicode_from_string == string_to_unicode == unicode_literal
True

दोनों विधियां यूनिकोड प्रकार में परिवर्तित होती हैं - और यूनिकोड_लिटरल के समान होती हैं।

सर्वश्रेष्ठ अभ्यास, यूनिकोड का उपयोग करें

यह अनुशंसा की जाती है कि आप हमेशा यूनिकोड में टेक्स्ट के साथ काम करें

सॉफ़्टवेयर को केवल यूनिकोड तारों के साथ आंतरिक रूप से काम करना चाहिए, आउटपुट पर एक विशेष एन्कोडिंग में परिवर्तित करना चाहिए।

आवश्यक होने पर वापस एन्कोड कर सकते हैं

हालांकि, लोअरकेस को टाइप str में वापस पाने के लिए, python स्ट्रिंग को utf-8 फिर से एन्कोड करें:

>>> print string
Километр
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.decode('utf-8')
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode('utf-8').lower()
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode('utf-8').lower().encode('utf-8')
'\xd0\xba\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.decode('utf-8').lower().encode('utf-8')
километр

तो पायथन 2 में, यूनिकोड पाइथन स्ट्रिंग में एन्कोड कर सकता है, और पायथन स्ट्रिंग यूनिकोड प्रकार में डीकोड कर सकते हैं।


## के नीचे कुछ बुनियादी पायथन स्ट्रिंग विधियों को समझाया गया है:

कम

स्ट्रिंग लोअर () विधि सभी अपरकेस अक्षरों को स्ट्रिंग में लोअरकेस वर्णों में परिवर्तित करती है और इसे वापस कर देती है।

उदाहरण:

string = "HeLLO PyTHON"
new_string = string.lower()

print string
print new_string

आउटपुट:

HeLLO PyTHON
hello python

पूंजीकरण :

पायथन में, पूंजीकरण () विधि स्ट्रिंग के पहले वर्ण को राजधानी (अपरकेस) अक्षर में परिवर्तित करती है।

उदाहरण:

string = "hello python"
new_string = string.capitalize()

print string
print new_string

आउटपुट:

hello python
Hello python

स्वैपकेस :

स्ट्रिंग स्वैपकेस () विधि सभी अपरकेस अक्षरों को लोअरकेस और सभी लोअरकेस वर्णों को दिए गए स्ट्रिंग के अपरकेस अक्षरों में परिवर्तित करती है और इसे वापस कर देती है।

string = "HEllO PythOn"
new_string = string.swapcase()

print string
print new_string

उत्पादन

HEllO PythOn
heLLo pYTHoN

पायथन 2 के साथ, यह यूटीएफ -8 में गैर-अंग्रेजी शब्दों के लिए काम नहीं करता है। इस मामले में decode('utf-8') मदद कर सकता है:

>>> s='Километр'
>>> print s.lower()
Километр
>>> print s.decode('utf-8').lower()
километр

यदि आप सूची में एकाधिक स्ट्रिंग्स पर इस ऑपरेशन को करने के लिए map का उपयोग करना चाहते हैं तो आपको str.lower का उपयोग करने की आवश्यकता होगी और न केवल lower :

words = ['CATS', 'KITTENS', 'Pirate Cats', 'fluffy felines']
list(map(str.lower, words))

रिटर्न

['cats', 'kittens', 'pirate cats', 'fluffy felines']

यह स्ट्रिंग को कम मामले में परिवर्तित कर देगा

string = "XYz"
converted = string.lower();
print("The converted lower case is:",converted)

साथ ही, आप कुछ चर को ओवरराइट कर सकते हैं:

s = input('UPPER CASE')
lower = s.lower()

यदि आप इस तरह उपयोग करते हैं:

s = "Kilometer"
print(s.lower())     - kilometer
print(s)             - Kilometer

यह कॉल करने पर ही काम करेगा।





lowercase