前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 对列表中的字符串首字母大写处理

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

作者头像
wsuo
发布2020-07-30 22:05:06
3.7K0
发布2020-07-30 22:05:06
举报
文章被收录于专栏:技术进阶之路

问题描述

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

示例

输入:

代码语言:javascript
复制
['sDe', 'abc', 'SDF']

输出:

代码语言:javascript
复制
['Sde', 'Abc', 'Sdf']

解法一

使用 map 函数,高阶函数。

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

代码语言:javascript
复制
lt = ['sDe', 'abc', 'SDF']
mp = list(map(lambda x: x[0].upper() + x[1:].lower(), lt))  # map函数
print(mp)

map 函数的定义为:

代码语言:javascript
复制
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 方法:

代码语言:javascript
复制
lt = ['sDe', 'abc', 'SDF']
result = [i.capitalize() for i in lt]  # 列表推导式
print(result)

查看函数的源码:

代码语言:javascript
复制
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 方法:

代码语言:javascript
复制
lt = ['sDe', 'abc', 'SDF']
result = [i.title() for i in lt]
print(result)

查看函数的源码:

代码语言:javascript
复制
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 ""

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

解法四

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

代码语言:javascript
复制
lt = ['sDe', 'abc', 'SDF']
result = ' '.join(lt).title().split()  # 字符串分割处理
print(result)

查看 join 函数的源码:

代码语言:javascript
复制
def join(self, iterable): # real signature unknown; restored from __doc__
        """
        S.join(iterable) -> str
        
        Return a string which is the concatenation of the strings in the
        iterable.  The separator between elements is S.
        """
        return ""

翻译一下就是:在 iterable 的字符串中间插入 S;

这里的 iterable 就是 lt ,列表,这里的 S 就是 空格;

所以我们这里的操作其实是将列表拆成字符串然后以空格隔开。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 示例
  • 解法一
  • 解法二
  • 解法三
  • 解法四
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档