প্রদত্ত প্রতিটি বড় হাতের অক্ষর 'এল' প্রতিস্থাপন করে খালি জায়গার সাথে সেই অক্ষর "এল" দিয়ে দিন। আমরা তালিকা বোধগম্যতা ব্যবহার করে এটি করতে পারি বা কোনও ক্রিয়াকলাপটিকে নিম্নলিখিত হিসাবে সংজ্ঞায়িত করতে পারি।
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']
ধন্যবাদ