【问题标题】:Sum of each element's length in PythonPython中每个元素的长度之和
【发布时间】:2017-03-17 07:20:41
【问题描述】:

如何计算python3中list的每个元素的总和?虽然我可以做到,但有什么聪明的方法吗?

data = [[1,2],[1], [3,4,2]]
sum_length = 0
for d in data:
    sum_length += len(d)
print(sum_length) # 6

【问题讨论】:

  • 你可以用sum(map(len, data))做到这一点
  • @RaymondHettinger 一个特别漂亮的解决方案,尤其是在 Python 3 上。
  • 谢谢你,@RaymondHettinger
  • FWIW,这不是 stackoverflow.com/questions/3780403 的完全重复,它专门关于字符串列表,而这是关于列表列表的问题。不过,两者的答案都是一样的。

标签: python list


【解决方案1】:

最短最快的方法是使用functional programming stylemap()sum()

>>> data = [[1,2],[1], [3,4,2]]
>>> sum(map(len, data))
6

在 Python 2 中,使用 itertools.imap 代替 map 以获得更好的内存性能:

>>> from itertools import imap
>>> data = ['a', 'bc', 'def', 'ghij']
>>> sum(imap(len, data))
10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2020-12-08
    相关资源
    最近更新 更多