我正在尝试编写一个函数,将一串小写字母变成一个大写字母的字符串。我正在尝试使用reduce和map()来做到这一点,虽然列表理解而不是map也可以。
答案 0 :(得分:2)
使用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?'
reduce
没有lambda
:
>>> import operator
>>> reduce(operator.add, lis, '')
'HOW ARE YOU?'
重要提示:使用reduce
构建字符串非常低效,因为它会在每次添加后创建一个新字符串。即使是中长字符串的性能也会过高。