首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.7-从字符串中删除特殊字符并camelCasing它

Python2.7-从字符串中删除特殊字符并camelCasing它
EN

Stack Overflow用户
提问于 2017-05-16 13:31:46
回答 1查看 614关注 0票数 0

输入:

代码语言:javascript
复制
to-camel-case
to_camel_case

期望输出:

代码语言:javascript
复制
toCamelCase

我的代码:

代码语言:javascript
复制
def to_camel_case(text):
    lst =['_', '-']
    if text is None:
        return ''
    else:
        for char in text:
            if text in lst:
                text = text.replace(char, '').title()
                return text

问题: 1)输入可以是空字符串--上面的代码不返回'‘,但没有返回;2)我不确定title()方法能否帮助我获得所需的输出(除了第一个字符之外,只有'-’或'_‘大写之前的第一个字母。

如果可能的话,我不喜欢使用regex。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-16 13:43:37

更好的方法是使用列表理解。for循环的问题是,当您从文本中删除字符时,循环会发生变化(因为应该对循环中的每个项进行迭代)。替换_-后的下一个字母也很难大写,因为您对前后的内容没有任何上下文。

代码语言:javascript
复制
def to_camel_case(text):
    # Split also removes the characters
    # Start by converting - to _, then splitting on _
    l = text.replace('-','_').split('_')

    # No text left after splitting
    if not len(l):
        return ""

    # Break the list into two parts
    first = l[0]
    rest = l[1:]

    return first + ''.join(word.capitalize() for word in rest)

我们的结果是:

代码语言:javascript
复制
print to_camel_case("hello-world")

给出helloWorld

这种方法非常灵活,甚至可以处理像"hello_world-how_are--you--"这样的情况,如果您是新手,使用regex可能会很困难。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44002960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档