mar*_*eau 62
处理空字符串的单行和None:
func = lambda s: s[:1].lower() + s[1:] if s else ''
>>> func(None)
>>> ''
>>> func('')
>>> ''
>>> func('MARTINEAU')
>>> 'mARTINEAU'
Run Code Online (Sandbox Code Playgroud)
Ric*_*dle 19
def first_lower(s):
if len(s) == 0:
return s
else:
return s[0].lower() + s[1:]
print first_lower("HELLO") # Prints "hELLO"
print first_lower("") # Doesn't crash :-)
Run Code Online (Sandbox Code Playgroud)
有趣的是,这些答案都没有完全相反capitalize().例如,capitalize('abC')返回Abc而不是AbC.如果你想要相反capitalize(),你需要这样的东西:
def uncapitalize(s):
if len(s) > 0:
s = s[0].lower() + s[1:].upper()
return s
Run Code Online (Sandbox Code Playgroud)
最简单的方法:
>>> mystring = 'ABCDE'
>>> mystring[0].lower() + mystring[1:]
'aBCDE'
>>>
Run Code Online (Sandbox Code Playgroud)
更新资料
请参阅此答案(@RichieHindle提供),以获取更简单的解决方案,包括处理空字符串。该答案None虽然无法解决,所以我认为:
>>> def first_lower(s):
if not s: # Added to handle case where s == None
return
else:
return s[0].lower() + s[1:]
>>> first_lower(None)
>>> first_lower("HELLO")
'hELLO'
>>> first_lower("")
>>>
Run Code Online (Sandbox Code Playgroud)
无需处理特殊情况(我认为对称性更像 Pythonic):
def uncapitalize(s):
return s[:1].lower() + s[1:].upper()
Run Code Online (Sandbox Code Playgroud)