如何添加列表元素并将其转换为字符串



我正试图编写一个函数,将小写字母字符串转换为全大写字母字符串。我正在尝试使用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构建字符串是非常低效的,因为它在每次添加后都会创建一个新字符串。即使是中等长度的字符串,其性能也会过高。

最新更新