社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何用条件[Python]替换所有字符

Htin Aung Lu • 3 年前 • 1059 次点击  

以下是我用snake_case替换camelCase输入的代码:

camel_case = str(input(" "))
snake_case = ""
# check each characters in string
for char in camel_case:
    if char.isupper(): # checking if it is upper or not
        snake_case = camel_case.replace(char, "_"+char.lower())
print(snake_case)

有了输入 userName ,它输出 user_name .但是如果输入超过两个大写字符, goodUserName 只有输出 goodUser_name .请帮我找到背后的逻辑!非常感谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133862
 
1059 次点击  
文章 [ 1 ]  |  最新文章 3 年前
not_speshal
Reply   •   1 楼
not_speshal    3 年前

不要在适当的位置修改字符串。相反,只需创建一个新字符串:

output = ""
for char in camel_case:
    if char.isupper():
        output += "_"
    output += char.lower()

或者,用一句话来说:

"".join("_"+char.lower() if char.isupper() else char.lower() for char in camel_case)