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 ⽅法:
unknown怎么处理
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 就是 空格;
所以我们这⾥的操作其实是将列表拆成字符串然后以空格隔开。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。