无法将“ int”对象隐式转换为str。 Python错误

时间:2019-02-06 14:17:36

标签: 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

在执行代码时,它会提到所提到的错误。我知道错误在行text[i] = text[i].upper()中的某处,但我无法弄清楚。谢谢。

2 个答案:

答案 0 :(得分:1)

IIUC,您可以使用string.title-_都替换为re.sub的空格:

import re
s = "hello_world"

re.sub('_|-',' ',s).title()
# 'Hello World'

答案 1 :(得分:0)

非正则表达式/原始逻辑(:D)版本:

def to_camel_case(text):
    pos_list = [x+1 for x,c in enumerate(text) if ((c == '_' or c == '-') and (x!=len(text)))]

    new_text_list = []
    for i, c in enumerate(text):
        if (c == '-' or c == '_'):
            continue
        if i in pos_list:
            new_text_list.append(c.upper())
        else:
            new_text_list.append(c)

    return "".join(x for x in new_text_list)



print to_camel_case("hey_there")
print to_camel_case("-In_this_World_")
print to_camel_case("hello_world")

输出:

heyThere
InThisWorld
helloWorld