相关文章推荐
暗恋学妹的消炎药  ·  南京信息工程大学主页平台管理系统 ...·  2 周前    · 
旅途中的牛腩  ·  python ...·  2 周前    · 
逃跑的剪刀  ·  chatGPT给出Python ...·  1 周前    · 
不要命的野马  ·  快速入门:从模板创建 Python 项目 ...·  6 天前    · 
玩篮球的海龟  ·  在 Azure Functions 中排查 ...·  4 天前    · 
有情有义的日光灯  ·  angular - error ...·  1 年前    · 
想出国的洋葱  ·  DB2 的事务日志 - 知乎·  2 年前    · 
一身肌肉的冲锋衣  ·  spark2+kafka报错:java.la ...·  2 年前    · 
想出国的大象  ·  mysql生成主键 - 南湖公明 - 博客园·  2 年前    · 
耍酷的西红柿  ·  nuxt项目运行在ie报错_nuxt ...·  2 年前    · 
Code  ›  Python 对列表中的字符串首字母大写处理开发者社区
python python函数
https://cloud.tencent.com/developer/article/1671386
冷冷的遥控器
2 年前
作者头像
wsuo
0 篇文章

Python 对列表中的字符串首字母大写处理

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 技术进阶之路 > Python 对列表中的字符串首字母大写处理

Python 对列表中的字符串首字母大写处理

作者头像
wsuo
发布 于 2020-07-30 22:05:06
2.1K 0
发布 于 2020-07-30 22:05:06
举报

问题描述

有一列表 ['sDe', 'abc', 'SDF'] 问如何将该列表中的字符串全部做首字母大写处理并输出?

示例

输入:

['sDe', 'abc', 'SDF']

输出:

['Sde', 'Abc', 'Sdf']

解法一

使用 map 函数,高阶函数。

并使用 Lambda 函数作为高阶函数的参数。

lt = ['sDe', 'abc', 'SDF']
mp = list(map(lambda x: x[0].upper() + x[1:].lower(), lt))  # map函数
print(mp)

map 函数的定义为:

map(func, *iterables) --> map object
Make an iterator that computes the function using arguments from 
each of the iterables.  Stops when the shortest iterable is exhausted.

第一个参数是一个函数,第二个参数是一个可变长参数。

翻译一下就是说创建一个迭代器,该迭代器使用每个可迭代对象的参数来计算函数。当最短的迭代次数用尽时停止。

在本例中就是说使用迭代访问 lt ,将每个迭代对象作为前面函数的调用参数返回。

解法二

使用列表推导式 + capitalize 方法:

lt = ['sDe', 'abc', 'SDF']
result = [i.capitalize() for i in lt]  # 列表推导式
print(result)

查看函数的源码:

def capitalize(self): # real signature unknown; restored from __doc__
        S.capitalize() -> str
        Return a capitalized version of S, i.e. make the first character
        have upper case and the rest lower case.
        return ""

翻译一下就是将首字母大写返回,刚好满足我们的要求。

解法三

使用列表推导式 + title 方法:

lt = ['sDe', 'abc', 'SDF']
result = [i.title() for i in lt]
print(result)

查看函数的源码:

def title(self): # real signature unknown; restored from __doc__
        S.title() -> str
        Return a titlecased version of S, i.e. words start with title case
        characters, all remaining cased characters have lower case.
        return ""

翻译一下就是返回起点的那个字符为大写,其余小写。

解法四

这种方法其实就是列表先转字符串,逐个处理之后再拼装成列表;

lt = ['sDe', 'abc', 'SDF']
result = ' '.join(lt).title().split()  # 字符串分割处理
print(result)

查看 join 函数的源码:

def join(self, iterable): # real signature unknown; restored from __doc__
 
推荐文章
暗恋学妹的消炎药  ·  南京信息工程大学主页平台管理系统 周洋--周洋主页--Python气象应用
2 周前
旅途中的牛腩  ·  python dataframe用第二行作为column名_mob64ca12dcc794的技术博客_
2 周前
逃跑的剪刀  ·  chatGPT给出Python time.sleep()假死(挂起)的解决办法_python time.sleep卡住了
1 周前
不要命的野马  ·  快速入门:从模板创建 Python 项目 - Visual Studio (Windows) | Microsoft Learn
6 天前
玩篮球的海龟  ·  在 Azure Functions 中排查 Python 函数应用错误 | Microsoft Learn
4 天前
有情有义的日光灯  ·  angular - error TS1192: Module @types/lodash/index has no default export - Stack Overflow
1 年前
想出国的洋葱  ·  DB2 的事务日志 - 知乎
2 年前
一身肌肉的冲锋衣  ·  spark2+kafka报错:java.lang.NoSuchMethodError:org.apache.kafka.clients.consumer.KafkaConsumer.subscribe_james的分享的博客-CSDN博客
2 年前
想出国的大象  ·  mysql生成主键 - 南湖公明 - 博客园
2 年前
耍酷的西红柿  ·  nuxt项目运行在ie报错_nuxt babel-polyfill_JIAgo_on的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号