【问题标题】:Capitalizing the first letter of every sentence python [duplicate]将每个句子的第一个字母大写python [重复]
【发布时间】:2019-09-04 22:19:20
【问题描述】:

我一直在尝试为我的菜单项目创建一个小函数,该函数将字符串作为输入并将每个句子的第一个字母大写。我想我已经接近正确了,但它一直给我一个我似乎无法修复的串联错误。有谁知道我哪里出错了?

def fix_capitalization(usrStr):
    s1 = usrStr.split(". ")
    s2 = [s1[0].capitalize() + s1[1:] for i in s1]
    st2 = '. '.join(s2)

    return st2

【问题讨论】:

标签: python python-3.x string concatenation


【解决方案1】:

试试这个:

def fix_capitalization(usrStr):

    return ".".join(list(map(lambda x: x.capitalize(),usrStr.split("."))))

这更紧凑。 map() 中的第二个参数——即 usrStr.plit()——返回一个列表,然后由 lambda 函数处理其项目。 lamda 函数返回一个列表(由 map 函数创建)。此列表中的项目由“.”连接。

【讨论】:

    【解决方案2】:

    在列表理解中,你有 s1[0] 而不是 i[0]

    def fix_capitalization(usrStr):
        s1 = usrStr.split(". ")
        s2 = [i[0].capitalize() + i[1:] for i in s1]
        st2 = '. '.join(s2)
    
        return st2
    

    【讨论】:

    • 如果我想计算有多少个字母大写,那么添加代码的最佳位置是哪里
    • 应该是字符串中有多少个句子的问题,所以len(s1)
    猜你喜欢
    • 2014-05-13
    • 2018-04-03
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多