【问题标题】:Using the for loop to pull data from two lists [duplicate]使用for循环从两个列表中提取数据[重复]
【发布时间】:2014-03-21 21:24:29
【问题描述】:

在 python 上,我基本上有两个列表

xvales = [2, 4, 6, 8, 10, 12]
yvales = [100, 95, 90, 85, 80, 75]
sumation = 0

如何使用 for 循环并从每个列表中提取相应的值以在公式中使用。第一次迭代 i=2 和 j=100。第二次迭代 i=4 和 j=95。第三次迭代 i=6 和 j=90。我想你明白我想要做什么。 我确实尝试过这样做。

For i in xvales and j in yvales:    
    v = i **2 / ( j+1 )    
    sumation += v

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    我觉得是这样的

    xvales = [2, 4, 6, 8, 10, 12]
    yvales = [100, 95, 90, 85, 80, 75]
    summation = sum([i ** 2 / (j+1) for i,j in zip(xvales, yvales)])
    

    【讨论】:

      【解决方案2】:

      使用zip

      >>> zip(xvales, yvales)
      [(2, 100), (4, 95), (6, 90), (8, 85), (10, 80), (12, 75)]
      

      然后,循环并求和:

      sumation = sum(i **2 / ( j+1 ) for i, j in zip(xvales, yvales))
      

      编辑

      但是,您可能需要浮点除法,否则会导致 2:

      sumation = sum(i **2 / float( j+1 ) for i, j in zip(xvales, yvales))
      # 4.475365812518561
      

      【讨论】:

        【解决方案3】:

        使用zip 函数一次迭代两者。

        维护结构的其余部分:

        for i, j in zip(xvales, yvales):
            v = i **2 / ( j+1 )    
            sumation += v
        

        【讨论】:

          【解决方案4】:
          total = sum(i**2 / (j+1) for i,j in zip(xvalues, yvalues))
          

          【讨论】:

            猜你喜欢
            • 2016-10-11
            • 2021-10-04
            • 1970-01-01
            • 2018-12-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-05
            • 1970-01-01
            相关资源
            最近更新 更多