Python实现驼峰转下划线命名(禁用enumerate等)遇问题
CamelCase转下划线命名的实现(禁用enumerate)
可行代码实现
def camel_to_snake(s): result = [] for char in s: if char.isupper(): result.append('_') result.append(char.lower()) else: result.append(char) return ''.join(result) # 测试示例 print(camel_to_snake("testTest")) # 输出: test_test
针对你遇到的问题分析
"not enough values to unpack (expected 2, got 1)"错误
你应该是写了类似for a, b in s:的循环逻辑——字符串的每个元素都是单个字符,无法拆分成两个值,因此触发拆包失败。如果需要同时处理相邻字符,也不需要这种错误的遍历方式,上面的方案完全可以满足需求。"cannot assign to expression"错误
这个问题是因为你把表达式放在了赋值语句的左侧,比如写了char.lower() = char这类反向操作。正确的做法是将处理后的结果赋值给变量,比如lower_char = char.lower()。字符逐行输出的问题
你大概率是在循环里每次单独调用print(char),而没有先把所有字符收集到容器(比如列表)中,最后拼接成完整字符串再输出。上面的代码通过列表收集所有字符,最后用join合并后打印,就能得到连贯的结果。
内容的提问来源于stack exchange,提问作者Elvino Michel
相关产品推荐
相关产品推荐

