You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python驼峰转蛇形命名程序问题:如何替换大写字母而非追加?

解决camelCase转snake_case的Python代码问题

你的代码问题出在初始化snakecase的方式上:你先把整个驼峰字符串转成了全小写,之后遍历原字符串的大写字母时,只是把下划线和小写字母追加到了末尾,而不是替换掉原来对应位置的字符,导致结果出现重复内容。比如输入camelCase,你的代码会输出camelcase_c,而不是正确的camel_case。

下面给两种可行的解决方法:

方法一:逐个字符构建结果字符串

从头开始拼接结果,遇到大写字母就插入下划线并转小写,小写字母直接拼接:

camelcase = input("camelCase: ")
snakecase = ""
for c in camelcase:
    if c.isupper():
        snakecase += "_" + c.lower()
    else:
        snakecase += c
print(snakecase)

方法二:用正则表达式快速处理

借助re模块的替换功能,一行代码搞定,适合处理复杂的驼峰字符串:

import re

camelcase = input("camelCase: ")
snakecase = re.sub(r'([A-Z])', r'_\1', camelcase).lower()
print(snakecase)

原理是用正则匹配所有大写字母,把每个大写字母替换成_加该字母,最后再把整个字符串转成小写,完美实现转换。

内容的提问来源于stack exchange,提问作者omen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:10:24