Python中将一段字符串 (或者列表) 中所有单词的首字母大写

将一个单词的首字母大写,我们一下子就会想到了capitalize()函数,直接调用str.capitalize(),单词的首字母就转换为大写字母,Ok 完事了。

但是如果是一段很长的字符串,里面有很多单词,每个单词首字母都要进行大写转换,这时候就直接调用capitalize()函数就行不通了。

我就是一个刚学python的小白呀,不会了,怎么办呢???

方法就是找呀找,终于找到了,往下看,来自Linux小百科大神给咱们的操作:

将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文单词的首字母变成大写。但如何将一段文本中所有英文单词的首字母都变成大写呢?最容易想到的方法是将这些英文单词拆成独立的单词,然后分别使用capitalize方法将这些英文单词的首字母变成大写,然后再将这些单词连接起来,实现代码如下:

s = 'The weather is really nice today, very suitable for an outing.' 
 
arr = s.split() 
for i in range(0, len(arr)): 
    arr[i] = arr[i].capitalize() 
s1 = " ".join(arr) 
print(s1) 

运行代码看看效果:

从这段代码可以看出,使用了3个方法:split、capitalize和join。分别用来拆分字符串;将英文单词首字母转换为大写;使用特定的分隔符(本例是空格)合并列表中的字符串。

不过这段代码好麻烦,有没有更简单的方式呢?当然有,铛铛铛!刚出锅的代码来了:

s = 'The weather is really nice today, very suitable for an outing.' 
print(" ".join([word.capitalize() for word in s.split()]))  # 只用了一行代码 

[ word.captalize() for word s.split() ]    这句看懵逼了吧,反正我是懵逼了。  还好我爱追根问底,终于又找到答案了, 原来此处用的 是 '列表解析' 方法,列表解析是什么呢?  自己百度一下吧,懒得百的话,就这样记着呗。反正下次会用就行!!

 够酷吧,这里只用了一行代码。其实这行代码与前面的实现方法没有本质的区别,只是用了Python中通过for in语句生成列表的方式,将多行代码简化成了一行代码,Python简直太神奇了。其实啊,如果要熟悉Python API,连一行代码都不用写,一个方法就解决了,这就是string.capwords方法,该方法属于string模块,所以需要先导入string模块,代码如下:

import string 
s = 'The weather is really nice today, very suitable for an outing.' 
print(string.capwords(s))   #将字符串中所有单词首字母大写 

看看简单不,别忙,还没完呢!capwords方法的默认分隔符是空格,如果这些英文单词用其他符号分隔,就需要使用capwords方法的第2个参数了,看下面的例子:

import string 
s = 'The,weather,is,really,nice,today,very,suitable,for,an,outing.' 
print(string.capwords(s, ','))   # 用逗号分隔的英文单词 

这段代码使用capwords方法将由逗号(,)分隔的所有英文单词的首字母转换为大写字母。运行结果如下:

The,Weather,Is,Really,Nice,Today,Very,Suitable,For,An,Outing. 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值