較短的代碼,我在這裏解決了這個問題https://www.hackerrank.com/challenges/capitalize爲大寫功能
說明: 給你一個字符串。你的任務是利用它的每個單詞。總之,只有第一個字符是大寫的。例12abc大寫時保持12abc - 因爲這個'標題'不能像'1 w 2 r 3g'這樣的字符串正常工作。 我需要檢查數字和小寫字母的組合。這是我的代碼:
def capitalize(string):
result = list (string.title())
for index in range (len (string)-1):
if string[index].isdigit() and string[index+1].islower():
result[index+1] = result[index+1].lower()
result = ''.join([char for char in result])
return (result)
但是這段代碼太麻煩了。有人可以幫助一個更優雅pythonic決定?謝謝!
啊忘了字的界限!是的,我認爲這將適用於更多的情況! –
在下面的句子中''一旦它們被創建,它們就不能被改變。',可能是那個輸出正確的'一旦它們被創建它們就不能被改變。 –
@ J.Piquard:亞爾,整個問題都很棘手。對於「word」的定義,使用負面後備排除非空格字符可能會更好:'titlesub = re.compile(r'(?<!\ S)[a-zA-Z]')。sub ' – ShadowRanger