Can';t转换为';int';对象隐式地添加到str。Python错误

Can';t转换为';int';对象隐式地添加到str。Python错误,python,string,integer,Python,String,Integer,这是我的代码,每当出现“-”或“-”时,我都会尝试将一个句子转换为驼峰大小写 def to_camel_case(text): for i in text: if text[0].isupper(): text[0] = text[0].upper() elif i == '_' or i == '-': text[i] = text[i].upper() return text 在执行代码时

这是我的代码,每当出现“-”或“-”时,我都会尝试将一个句子转换为驼峰大小写

def to_camel_case(text):
    for i in text:   
        if text[0].isupper():
            text[0] = text[0].upper()
        elif i == '_' or i == '-':
            text[i] = text[i].upper()
    return text

在执行代码时,它会显示所提到的错误。我知道错误在
text[I]=text[I].upper()行的某个地方,但我无法找出它。谢谢。

IIUC您可以使用
string.title
-
-
替换为带有
re.sub
的空格:

import re
s = "hello_world"

re.sub('_|-',' ',s).title()
# 'Hello World'
非正则表达式/原始逻辑(:D)版本:

输出:

heyThere
InThisWorld
helloWorld

你能提供一个输入失败的例子吗?
text
“hello\u world”
当我运行输入的任何字符串时失败,例如:“to\u camel\u case”或“to camel case”。你期望的输出是什么?@yatu我尝试在“text[I]=text[I]行中将“I”改为“I+1”。.upper()。仍然得到相同的错误。谢谢。但需要处理正则表达式:赛斯:这对你来说不方便吗?我将其用于商品,因为它允许一次性替换多个子字符串,这很好。我以前没有真正使用过正则表达式,所以我正在研究它是如何运行的。谢谢你的不同方法
re.sub
本质上是
string.replace
的正则表达式版本。不客气!好极了。谢谢如果我可以问的话,这行“pos_list=[x+1代表x,c在enumerate(text)if((c=''.'或c=''-'))和(x!=len(text))]”做什么。这行计算'-'或'.'旁边的字符的位置,以便以后只有这些字母可以转换为大写。
heyThere
InThisWorld
helloWorld