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

问题描述

有一列表 ['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__
        """ 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 就是 空格;

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

全部评论

相关推荐

给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
会员标识
昨天 16:28
已编辑
牛客运营
从03年的“北大毕业生卖猪肉”到前段时间上热搜的“北大博士入职城管”,这些年“下沉式就业”现象频繁牵动着大家的视野和目光吧,很吸睛?我觉得并不是,如果你说985大学生XXX,那可能成不了焦点,如果说是北大清华毕业生去当城管,卖猪肉,大家都会讨论一番,无论是谁都知道北大清华的过人之处。但是呢近些年的确有很多985、211名校毕业生选择到基层就业或回老家创业,会不会觉得大财小用?老家的哥哥,因为当时学的专业不是很好,但好在学校不错,一路本硕连读,毕业之后在上海打拼了2年,也攒了一些小钱,随后回村选择科学养鸡,买了很大一块地开始科学方法的养鸡、卖鸡蛋,村里的老人都会议论纷纷,白瞎了家里供你读书,又回...
下午吃泡馍:不是每一个脱下长衫的人在下沉市场重获新生,并不是每一个养猪养鸡的高学历人才都会成功。现实是很多人的“长衫”就是自己为数不多甚至唯一的底牌了,拼尽全力拿到一个不错的学历,这时候主流媒体告诉对方脱下长衫也可以活的精彩,其实真的挺难过的。强者恒强,但是弱者是人群的底色。 本质上是整个市场的问题,没有足够多的增长点,没有足够多的岗位,自上而下没有积极向上的氛围。外企撤出,供应链缺失...在发展的过程中总有阵痛,现阶段可能就是我们承受阵痛的过程。之前在牛客看到一个小伙伴说:时代的一粒灰尘,落在谁的身上,都将是无法承受之重!深有感触。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务