程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python编程小技巧:实现驼峰命名到下划线命名的转换

hfteth 2025-02-19 12:10:31 技术文章 19 ℃

驼峰命名法(CamelCase)与下划线命名法(snake_case)是两种常见的命名约定,各自在特定的编程场景中广泛应用。然而,在处理来自不同源或遵循不同规范的数据时,我们常常需要将一种命名方式转换为另一种。

示例代码:

def camel_to_snake(s):

	# 初始化结果字符串,并添加第一个字符(因为首字母可能大写且不应被转换为下划线开头)
    result = [s[0].lower()]
    
    # 遍历字符串(从第二个字符开始),检查当前字符和前一个字符
    for i in range(1, len(s)):
        # 如果当前字符是大写且前一个字符不是大写,则在结果中添加下划线并转换当前字符为小写
        if s[i].isupper() and (i == 0 or not s[i-1].isupper()):
            result.append('_')
            result.append(s[i].lower())
        else:
            # 否则,直接添加当前字符(如果是小写则直接添加,大写则转换为小写后添加)
            result.append(s[i].lower())
    
    # 将结果列表连接成字符串并返回
    return ''.join(result)

camel_string = "BeautifulLandscapeOfAutumnInAncientChina"
snake_string = camel_to_snake(camel_string)
print(snake_string)

执行结果:


连续大写字母的处理:如"HTTP",按照一般约定,应转换为"http",而非"h_t_t_p"。通过检查当前字符和前一个字符是否都为大写来避免在连续大写字母间插入不必要的下划线。

如果字符串中包含特殊字符(如"-", "_", "#")或非字母字符(如数字),默认将它们视为小写字母处理(因为它们不是大写字母,所以不会被检查是否应添加下划线)。

Tags:

最近发表
标签列表