我一直在尝试为菜单项目创建一个小函数,该函数将字符串作为输入并大写每个句子的首字母。我认为我已经很接近正确了,但是它一直给我一个我似乎无法修复的串联错误。有人知道我在哪里错了吗?
def fix_capitalization(usrStr):
s1 = usrStr.split(". ")
s2 = [s1[0].capitalize() + s1[1:] for i in s1]
st2 = '. '.join(s2)
return st2
答案 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函数创建)。此列表中的项目以“。”连接。