使用for循环从两个列表中提取数据

时间:2014-02-20 18:15:09

标签: python python-2.7

在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

4 个答案:

答案 0 :(得分:2)

total = sum(i**2 / (j+1) for i,j in zip(xvalues, yvalues))

答案 1 :(得分:1)

使用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

答案 2 :(得分:0)

使用zip函数立即迭代两者。

维护结构的其余部分:

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

答案 3 :(得分:0)

我认为这样做

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)])