以下是不同方式的总结:

最简单的解决scheme是将句子拆分为单词,并将第一个字母大写,然后将其连接在一起。

# Be careful with multiple spaces, and empty strings # for empty words w[0] would cause an index error, # but with w[:1] we get an empty string as desired def cap_sentence(s): return ' '.join(w[:1].upper() + w[1:] for w in s.split(' '))

如果您不想先将inputstring拆分为单词,并使用奇特的生成器:

# Iterate through each of the characters in the string and capitalize # the first char and any char after a blank space from itertools import chain def cap_sentence(s): return ''.join( (c.upper() if prev == ' ' else c) for c, prev in zip(s, chain(' ', s)) )

或者不需要导入itertools

def cap_sentence(s): return ''.join( (c.upper() if i == 0 or s[i-1] == ' ' else c) for i, c in enumerate(s) )

或者你可以使用steveha的答案中的正则expression式

import re def cap_sentence(s): return re.sub("(^|\s)(\S)", lambda m: m.group(1) + m.group(2).upper(), s)

这些将用于所有这些input:

"" => "" "abc" => "ABC" "foO baR" => "FoO BaR" "foo bar" => "Foo Bar" "foo's bar" => "Foo's Bar" "foo's1bar" => "Foo's1bar" "foo 1bar" => "Foo 1bar"

现在,如果我们使用一个单词的定义作为句子的开头或任何空格之后的东西,那么这些是已发布的一些其他答案 ,以及它们不能按预期工作的input:

return s.title() # Undesired outputs: "foO baR" => "Foo Bar" "foo's bar" => "Foo'S Bar" "foo's1bar" => "Foo'S1Bar" "foo 1bar" => "Foo 1Bar"

return ' '.join(w.capitalize() for w in s.split()) # or import string return string.capwords(s) # Undesired outputs: "foO baR" => "Foo Bar" "foo bar" => "Foo Bar"

使用''拆分将修复第二个输出,但capwords()仍然不会工作的第一个

return ' '.join(w.capitalize() for w in s.split(' ')) # or import string return string.capwords(s, ' ') # Undesired outputs: "foO baR" => "Foo Bar"

小心多个空格

return ' '.join(w[0].upper() + w[1:] for w in s.split()) # Undesired outputs: "foo bar" => "Foo Bar"

python 字符串首字母_如何将string(Python)中每个单词的首字母大写?相关推荐

  1. 将字符串中每个单词的首字母大写

    需求 将字符串中每个单词的首字母大写 输入:一个形如句子的字符串 输出:每个单词第一个字符大写的字符串 代码 const capitalizeEveryWord = str => str.rep ...

  2. 将一句英文中每个单词的首字母大写,其余字母小写 ‘hOw aRE yOU‘ -> ‘How Are You‘

    将一句英文中每个单词的首字母大写,其余字母小写 'hOw aRE yOU' -> 'How Are You' var str='hOw aRE yOU'// 将字符串转为数组,按照空格分隔var ...

  3. 输入大写字母,输出大小写字母及其对应的ASCII码;输入语句,将大写字母变成小写字母;将句子中每个单词的第一个字母转换为大写字母;输入一串字符,分别算出英文字母、空格、数字、其他字符的个数(C)

    养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 以下题目是对于ASCII码的一些练手题 在c语言中 使用%c输出的是字符本身 使用%d输出的是字符对应的ASCII 在ASCII中, ...

  4. python提取每个单词首字母_如何将字符串中每个单词的首字母大写(Python)?

    Here's a summary of different ways to do it: 最简单的解决方案是将句子分成单词并将第一个字母大写,然后将其连接在一起 . # Be careful with ...

  5. python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记

    About me 本蒟蒻是悉尼大学计算机科学大一的学生,这篇博客记录了学习INFO1110这门课的一些心得,希望能对大家有帮助. To start with 因为计算机只能识别机器语言,所以我们需要编 ...

  6. python字符串单个替换_如何用变量替换列表中的单个字符串?

    我正在编写一个脚本,用python为程序maya创建一个命名约定. 我将使用它来命名脚本创建的所有对象.在 例如,以左膝关节为例.脚本会传递这样的信息 ("bind"," ...

  7. python字符串函数的find方法_Python string模块 字符串函数方法操作教程

    我们在Python编程过程中,经常会处理一些字符串的相关操作,例如:查找.替换.分隔.截取以及英文的大小写转换等,这个时候Python程序员首选的一定是 string模块 . 一.string模块简单 ...

  8. python字符串连接数字电视_【学习猿地】初识python脚本 #千万别看,我怕你控制不住...

    >编写python程序的文件,称为python的脚本或程序 >要求当前的python脚本的文件后缀名必须是.py #### pycharm使用注意 > 需要明确的知道你当前pycha ...

  9. python字符串连接数字电视_自学计划 - python 小白基础教程 - 第三课:字符串和数字...

    目录 字符串的索引 我们在之前已经接触过字符串,它在 python 是str类型.现在让我我们来更深入地了解一下. 一个字符串是一系列字符的组合,因此我们可以通过方括号操作符号加上序号来获取单个字符. ...

  10. python字符串去掉空行_从python中的字符串中删除空格

    python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...

最新文章

  1. 数据聚集技术在mondrian中的实现
  2. 软件系统设计 表驱动法
  3. [js] 说说你对js对象生命周期的理解
  4. java千万用户实现实时排名_想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜...
  5. linux 基础训练题,Linux习题练习
  6. 利用Octopress搭建一个Github博客
  7. Android 动画的分类
  8. C#与C++在语言层面的区别(不断补充)
  9. 2019中国软件百强榜:华为、阿里、百度、腾讯位列前四
  10. Mac OS X 更新JAMF域控配置
  11. dsf5.0 element ui表单相关验证
  12. 通过读取csv/xml数据并且结合使用allure展示测试报告,验证开发中的add()和reduct()操作(在@allure.story分别实现相加减)
  13. 想要搭建个人博客?我调研了 100 来个 Java 开源博客系统,发现这 5 个最好用!......
  14. SharedPreferences使用及原理
  15. 聊聊身边的嵌入式,自拍神器自拍杆
  16. 在微信公众号中添加外部的链接图文教程
  17. 计算机等级二级 领慧,计算机二级考试真题-Word-领慧讲堂大学生人生规划海报...
  18. iOS Category 添加属性实现原理 - 关联对象
  19. 医院wifi解决方案怎么样
  20. 雅马哈机械手程序 程序里有跟相机Socket通信数据处理,此流程为锁螺丝

热门文章

  1. windows上的一些命令和工具
  2. 如何使用Node.js和CloudFormation在AWS Lambda中构建和部署GraphQL服务器
  3. postgresql学习_在PostgreSQL中学习这些快速技巧
  4. 如何使用消息队列,Spring Boot和Kubernetes扩展微服务
  5. vue设置textarea最大字数_【Vue 学习】 Vue常用系统指令
  6. 用Python做一个简单的翻译工具
  7. 将安卓手机打造成你的python全栈开发利器
  8. 常用 AT 命令手册
  9. 漫步凸分析五——函数运算
  10. 2.6 特殊的矩阵和向量