【发布时间】:2010-11-29 12:00:44
【问题描述】:
我编写了下面的函数,它将下划线转换为驼峰式,第一个单词为小写,即“get_this_value”->“getThisValue”。我还要求保留前导和尾随下划线以及双(三等)下划线(如果有的话),即
"_get__this_value_" -> "_get_ThisValue_".
代码:
def underscore_to_camelcase(value):
output = ""
first_word_passed = False
for word in value.split("_"):
if not word:
output += "_"
continue
if first_word_passed:
output += word.capitalize()
else:
output += word.lower()
first_word_passed = True
return output
我感觉上面的代码是用非 Python 风格编写的,尽管它按预期工作,所以看看如何简化代码并使用列表推导等编写它。
【问题讨论】:
-
你的问题不清楚;你想把“get_this_value”转换成“getThisValue”还是“get_ThisValue”
-
"get_this_value" -> "getThisValue",第一个变体。没有下划线,除非它们在开头、结尾或两个或多个下划线相互跟随。
-
您确定您的功能按预期工作吗?你是说你想 preserve 双,三…下划线,但是你的代码正在做的是剪掉一个下划线。 IE。从 get__this_value 得到 get_ThisValue,从 get____this 得到 get___This。这是你想要的吗?
标签: python