将每个句子的首字母大写python

时间:2019-04-14 22:33:03

标签: python python-3.x string concatenation

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

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

    return st2

2 个答案:

答案 0 :(得分:3)

在列表理解中,您拥有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

答案 1 :(得分:0)

尝试一下:

def fix_capitalization(usrStr):

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

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