我正试图编写一个函数,将小写字母字符串转换为全大写字母字符串。我正在尝试使用reduce和map()来实现这一点,尽管列表理解而不是map也可以。
使用str.upper()
:
>>> 'How are you?'.upper()
'HOW ARE YOU?'
关于您的问题"我不知道如何将它们从列表中重新组合成字符串",请使用str.join
:
>>> lis = ['H', 'O', 'W', ' ', 'A', 'R', 'E', ' ', 'Y', 'O', 'U', '?']
>>> ''.join(lis)
'HOW ARE YOU?'
如果你想使用reduce
,你需要给它一个''
的初始值,并给它一种函数,它接受两个参数并将它们简化为一个结果:
>>> reduce(lambda s,t:s + t, lis, '')
'HOW ARE YOU?'
不带lambda
:的reduce
>>> import operator
>>> reduce(operator.add, lis, '')
'HOW ARE YOU?'
重要提示:使用reduce
构建字符串是非常低效的,因为它在每次添加后都会创建一个新字符串。即使是中等长度的字符串,其性能也会过高。