计算列表中相邻余弦值之间的差异

时间:2013-02-05 18:36:16

标签: python

我想找出值1到10的差值余弦函数值。 所以:

import math
import sys
import string
import os

for n in range (1,11): 
        x = math.cos (n)
        print x

这个简单的脚本打印n = 1到10的余弦值现在我需要确定各个值之间的差异,并从n = 2的值和n = 1的值读取它然后取值对于n = 3和n = 2 所以:

Math.cos (2) - Math.cos (1)

Math.cos (3) - Math.cos (2)

Math.cos (4) - Math.cos (3)

.

.

Math.cos (10) - Math.cos (9)

最后

Math.cos (10) - Math.cos (1)

然后我想把这些值加起来......但我已经把它们放在了一起

4 个答案:

答案 0 :(得分:1)

我可能会这样做:

for x,y in zip(range(2,11)+[10],range(1,10)+[1]):
    print math.cos(x) - math.cos(y)

当然,这只适用于python2.x,其中range返回一个列表。要解决这个问题,您可以使用itertools.chain。即:range(2,11)+[10]变为chain(range(2,11),[10])。这里要学习的关键功能是zip

答案 1 :(得分:1)

未测试:

import math

cosines = map(math.cos, xrange(1, 11))
cosines.append(cosines[0])

from operator import sub
print map(sub, cosines[1:], cosines[:-1])

答案 2 :(得分:0)

您可以一起使用多个for循环,如下所示:

for x in range(1, 11):
    for y in range(1, 11):
        print("x is %s, y is %s" % (x, y))

答案 3 :(得分:0)

from math import cos

cosines = [cos(i) for i in range(1,11)]

print [b-a for a,b in zip(cosines, cosines[1:]+cosines[0])]