Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
285 views
in Technique[技术] by (71.8m points)

Make the first letter of each sentence capital without changing the rest of the sentence in Python

I have a sentence like below:

sent = "It was cold yesterday in Chicago. you are sneezing since morning. come in and take rest."

Now, I need to make the first letter after every period as capital without touching the rest of the sentence. Something like this:

"It was cold yesterday in Chicago. You are sneezing since morning. Come in and take rest."

I tried below code:

'. '.join(list(map(lambda x: x.strip().capitalize(), sent.split('.'))))

But this changes the first word to capital and the rest all will change to lower case, like below:

"It was cold yesterday in chicago. You are sneezing since morning. Come in and take rest."

We can observe that 'Chicago' changes to 'chicago' which I do not want. How can I achieve this?

question from:https://stackoverflow.com/questions/66058069/make-the-first-letter-of-each-sentence-capital-without-changing-the-rest-of-the

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this one:

'. '.join(list(map(lambda x: x[0].capitalize() + x[1:], sent.split('. '))))

Or even better using a generator:

'. '.join(x[0].capitalize() + x[1:] for x in sent.split('. '))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...