Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 .capitalize函数的奇怪行为_Python - Fatal编程技术网

Python .capitalize函数的奇怪行为

Python .capitalize函数的奇怪行为,python,Python,我将.capitalize函数的奇怪行为与reduce匹配 而camel\u case('camel case word')的结果是'CamelcaseWord',而当我使用.upper()时,例如,一切正常 我误解了什么? 谢谢大家的回复 由于您使用了reduce函数,当您使用“camel case word”调用camel_case时,它相当于以下代码: x,y,z = s.split() (x.capitalize() + y.capitalize()).capitalize() + z.

我将.capitalize函数的奇怪行为与reduce匹配

camel\u case('camel case word')
的结果是
'CamelcaseWord'
,而当我使用
.upper()
时,例如,一切正常

我误解了什么?
谢谢大家的回复

由于您使用了
reduce
函数,当您使用“camel case word”调用camel_case时,它相当于以下代码:

x,y,z = s.split()
(x.capitalize() + y.capitalize()).capitalize() + z.capitalize()
现在,第三个大写字母(从左起)将所有字符转换为小写,第一个字符将变为大写,这样您就可以

(x.capitalize() + y.capitalize()).capitalize() 
等于“Camelcase”和

z.capitalize()
等于“单词”。结果就是这样


现在,当您使用upper时,调用
(x.upper()+y.upper()).upper()
相当于
x.upper()+y.upper()
,因此您不会注意到差异。

您的预期输出是什么?您可以使用
str.title().replace(“,”)
来完成此操作。如果确实必须使用
reduce
,则可以使用
str title(),正确的方法是使用空字符串作为初始化器参数:
reduce((lambda,b:a+b.capitalize()),iterable,“”
z.capitalize()