将每个句子的第一个字母大写python [重复]

Posted

技术标签:

【中文标题】将每个句子的第一个字母大写python [重复]【英文标题】:Capitalizing the first letter of every sentence python [duplicate] 【发布时间】: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

【问题讨论】:

什么是串联错误? @Tom TypeError: 只能将str(不是“list”)连接到str 不管怎样,不用大写就可以做你想做的事吗? docs.python.org/3/library/stdtypes.html#string-methods - 它只处理字符串中的第一个字母。 【参考方案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)

以上是关于将每个句子的第一个字母大写python [重复]的主要内容,如果未能解决你的问题,请参考以下文章

hdu 2026 首字母变大写

HDU 2026 首字母变大写

php将句子中的第二个字母大写最少10个字符

首字母变大写(stringstream的应用)

在 LaTeX 的新句子中自动大写第一个单词的第一个字母

Python 3 - 从莫尔斯电码翻译时如何将每个句子的首字母大写