Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环中字符串的Python行为_Python_String_Loops - Fatal编程技术网

循环中字符串的Python行为

循环中字符串的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被还原了吗?谢谢

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:]