प्रत्येक अपरकेस अक्षर 'L' को रिक्त स्थान के साथ दिए गए अक्षर "L" से बदल दें। हम सूची की समझ का उपयोग करके ऐसा कर सकते हैं या हम इसे निम्नानुसार कार्य करने के लिए परिभाषित कर सकते हैं।
s = 'TheLongANDWindingRoad ABC A123B45'
''.join([char if (char.islower() or not char.isalpha()) else ' '+char for char in list(s)]).strip().split()
>>> ['The', 'Long', 'A', 'N', 'D', 'Winding', 'Road', 'A', 'B', 'C', 'A123', 'B45']
यदि आप एक समारोह से जाने के लिए चुनते हैं, तो यहां बताया गया है कि कैसे।
def splitAtUpperCase(text):
result = ""
for char in text:
if char.isupper():
result += " " + char
else:
result += char
return result.split()
दिए गए उदाहरण के मामले में:
print(splitAtUpperCase('TheLongAndWindingRoad'))
>>>['The', 'Long', 'A', 'N', 'D', 'Winding', 'Road']
लेकिन अधिकांश समय जब हम ऊपरी मामलों के अक्षरों में एक वाक्य को विभाजित कर रहे होते हैं, यह आमतौर पर ऐसा मामला होता है जिसे हम संक्षिप्त रूप से बनाए रखना चाहते हैं जो आमतौर पर अपरकेस अक्षरों की एक सतत धारा होती है। नीचे दिए गए कोड से मदद मिलेगी।
def splitAtUpperCase(s):
for i in range(len(s)-1)[::-1]:
if s[i].isupper() and s[i+1].islower():
s = s[:i]+' '+s[i:]
if s[i].isupper() and s[i-1].islower():
s = s[:i]+' '+s[i:]
return s.split()
splitAtUpperCase('TheLongANDWindingRoad')
>>> ['The', 'Long', 'AND', 'Winding', 'Road']
धन्यवाद।