【问题标题】:How To Add List Elements and Convert Them To A String如何添加列表元素并将它们转换为字符串
【发布时间】:2014-11-27 15:49:13
【问题描述】:

我正在尝试编写一个函数,将一串小写字母转换为一串全大写字母。我正在尝试使用 reduce 和 map() 来执行此操作,尽管列表理解而不是 map 也可以。

【问题讨论】:

  • 可以选择使用string.upper(),还是您需要自己做?
  • 您的all_caps 函数有两个返回语句。只有第一个 on 会被执行。

标签: python list map reduce


【解决方案1】:

使用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 构建字符串效率非常低,因为它会在每次添加后创建一个新字符串。即使是中等长度的字符串,性能也会过高。

【讨论】:

  • 您的 add 函数需要接受两个字符串并返回一个。 def add_s(s, t):return s + t。或使用operator.add
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 2021-12-23
  • 2015-01-29
  • 2011-01-08
  • 2020-01-28
相关资源
最近更新 更多