循环中字符串的Python行为
在尝试在分隔符处大写字符串时,我遇到了我不理解的行为。有人能解释一下为什么在循环过程中字符串s被还原了吗?谢谢循环中字符串的Python行为,python,string,loops,Python,String,Loops,在尝试在分隔符处大写字符串时,我遇到了我不理解的行为。有人能解释一下为什么在循环过程中字符串s被还原了吗?谢谢 s = 'these-three_words' seperators = ('-','_') for sep in seperators: s = sep.join([i.capitalize() for i in s.split(sep)]) print s print s stdout: These-Three_words Thes
s = 'these-three_words'
seperators = ('-','_')
for sep in seperators:
s = sep.join([i.capitalize() for i in s.split(sep)])
print s
print s
stdout:
These-Three_words
These-three_Words
These-three_Words
将字符串的第一个字符变为大写,其余字符变为小写
在第一次迭代中,它如下所示:
>>> [i.capitalize() for i in s.split('-')]
['These', 'Three_words']
在第二次迭代中,字符串分为:
>>> [i for i in s.split('_')]
['These-Three', 'words']
因此,运行capitalize-on-both将把T变成三个小写。将第一个字符变成大写,将字符串的其余部分变成小写
在第一次迭代中,它如下所示:
>>> [i.capitalize() for i in s.split('-')]
['These', 'Three_words']
在第二次迭代中,字符串分为:
>>> [i for i in s.split('_')]
['These-Three', 'words']
因此,运行capitalize-on-both将把T变成三个小写。
str.capitalize
将第一个字符大写,其余字符小写。str.capitalize
将第一个字符大写,其余字符小写。您可以使用:
您可以使用:
Capitalize()将返回字符串的一个副本,其中第一个字符仅大写。你可以用这个:
def cap(s):
return s[0].upper() + s[1:]
def盖:
返回s[0]。上限()+s[1:]
Capitalize()将返回字符串的一个副本,其中第一个字符仅大写。你可以用这个:
def cap(s):
return s[0].upper() + s[1:]
def盖:
返回s[0]。上限()+s[1:]