【问题标题】:Add numbers of lists to the first number of the list [duplicate]将列表数量添加到列表的第一个数字[重复]
【发布时间】:2021-04-27 16:39:59
【问题描述】:

我有以下清单:

list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805]

我想将第一个数字添加到新列表中,如下所示:

list_2 = []
list_2[0] = list_1[0]
list_2[1] = list_1[0] + list_1[1]
list_2[2] = list_1[0] + list_1[1] + list_1[2]
list_2[3] = list_1[0] + list_1[1] + list_1[2] + list_1[3]
list_2[4] = list_1[0] + list_1[1] + list_1[2] + list_1[3] + list_1[4]

如何使用 for 循环或更实用的方法来实现?

【问题讨论】:

    标签: python list numpy sum


    【解决方案1】:

    如果你想要一个简短的答案,你也可以使用生成器:

    list_2 = [sum(list_1[:(i+1)]) for i in range(len(list_1))]
    

    【讨论】:

    • 哇!非常感谢
    【解决方案2】:

    你可以使用itertools.accumulate:

    from itertools import accumulate
    
    list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805]
    list_2 = list(accumulate(list_1))
    print(list_2)
    

    打印:

    [2.03898103, 4.2760684399999995, 5.95828417, 7.08181302, 7.64409107]
    

    【讨论】:

      【解决方案3】:
      list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805]
      list_2 = []
      j = 0.
      for i in range(0,len(list_1)):
          j = j + list_1[i]
          list_2.append(j)
      print(list_2)
      

      【讨论】:

      • 谢谢,您间接为我解决了另一个问题。哇
      • @ZaidKhalil 采用更简单的方法,因为此列表仅由浮点数组成,我建议使用 NumPy 中的 cumsum() 函数
      【解决方案4】:

      您已在问题中标记为 NumPy,因此只需使用 numpy.cumsum:

      >>> import numpy as np
      >>> list_1 = np.array([2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805])
      >>> np.cumsum(list_1)
      array([2.03898103, 4.27606844, 5.95828417, 7.08181302, 7.64409107])
      

      【讨论】:

      • 非常好,我不知道。谢谢
      【解决方案5】:

      您可以使用多个 for 循环。

      list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 
      0.56227805]
      list_2 = []
      
      for i in range(0, 4):
           for j in range(0, i):
                list_2[i] += list_1[j]
      

      【讨论】:

      • 我尝试了很多,但我犯了错误。现在我知道我的错误了。非常感谢
      • 是的。使用多个 for 循环通常可以轻松解决看似复杂的问题。
      猜你喜欢
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2019-02-05
      • 1970-01-01
      相关资源
      最近更新 更多