Я написал нижеприведенную функцию, которая преобразует подчеркивание в верблюд с первым словом в нижнем регистре, то есть "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
Я чувствую код выше, как написано в непитоновом стиле, хотя он работает так, как ожидалось, поэтому, глядя, как упростить код и написать его с помощью методов списка и т.д.