这是我的代码,试图在出现“-”或“ _”时将句子转换为驼峰式大小写。
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()
中的某处,但我无法弄清楚。谢谢。
答案 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