【问题标题】:Adding the elements of a list添加列表的元素
【发布时间】:2016-02-01 04:11:57
【问题描述】:

我正在尝试添加列表的所有元素并找到它的平均值。

[[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]

我找到平均值的代码是:

avg = sum(lst)/len(lst)

错误:

TypeError:+ 的不支持的操作数类型:“int”和“list”

我认为这是造成这种情况的原因,因为它是一个列表,但我不想更改列表的输出,因为这个输出花了我将近 100 行编码才能完成。 如何在不损坏代码的情况下添加所有这些元素? 液化天然气 - 蟒蛇

【问题讨论】:

    标签: python string list dictionary int


    【解决方案1】:

    首先,如果您想让除法在 python2.x 和 3.x 中具有相同的行为,我建议您导入 division

    >>> from __future__ import division
    

    你猜原因是嵌套列表,没错,就是这个原因。所以,解决方法很简单,我们使用内部列表:

    >>> lst = [[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]
    >>> average = sum(lst[0]) / len(lst[0])
    >>> average 
    6.538888888888889
    

    如果您使用的是 python 3.4 或更高版本,std lib 有电池:statistics.mean

    >>> from statistics import mean
    >>> mean(lst[0])
    6.538888888888889
    

    【讨论】:

      【解决方案2】:

      你可以用 numpy 做到这一点。

      In [1]: import numpy as np
      In [2]: lst = [[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]
      In [3]: np.mean(lst[0])
      Out[3]: 6.5388888888888888
      

      【讨论】:

        【解决方案3】:

        尝试使用pop:

        list = [[1,2,3,4,5]]
        
        innerList = list.pop()
        
        avg = sum( innerList ) / len ( innerList )
        
        print avg
        

        结果:

        3
        

        【讨论】:

          【解决方案4】:

          应该是avg = sum(lst[0])/len(lst[0])

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-08
            • 1970-01-01
            • 1970-01-01
            • 2014-06-16
            相关资源
            最近更新 更多