Python 计算列表中相邻余弦值之间的差值
我想找出余弦函数值的差价值观1至10。 因此: 这个简单的脚本打印n=1到10的余弦值,现在我需要确定各个值之间的差异从n=2的值中取,从n=1的值中取读数,然后取n=3和n=2的值 因此: 最后Python 计算列表中相邻余弦值之间的差值,python,Python,我想找出余弦函数值的差价值观1至10。 因此: 这个简单的脚本打印n=1到10的余弦值,现在我需要确定各个值之间的差异从n=2的值中取,从n=1的值中取读数,然后取n=3和n=2的值 因此: 最后 Math.cos (10) - Math.cos (1) 然后我想把这些值加起来... 但是我已经准备好了,也许我会做一些类似的事情: for x,y in zip(range(2,11)+[10],range(1,10)+[1]): print math.cos(x) -
Math.cos (10) - Math.cos (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
。i、 e.:range(2,11)+[10]
变成chain(range(2,11),[10])
。这里要学习的关键功能是您可以使用多个将
循环在一起,如下所示:
for x in range(1, 11):
for y in range(1, 11):
print("x is %s, y is %s" % (x, y))
未经测试:
import math
cosines = map(math.cos, xrange(1, 11))
cosines.append(cosines[0])
from operator import sub
print map(sub, cosines[1:], cosines[:-1])
@BenjaminGruenbaum,@TylerCrompton我读到,我认为如果是家庭作业,人们试图帮助用户理解逻辑,而不是仅仅回答问题,最终问题会得到回答,但OP会学到更多,我认为双方都从交流中受益。不清楚你到底在问什么,但假设我理解正确,最终结果总是
2*Math.cos(1)
,因此n>1
。我认为这在最终元素上的符号是错误的(尽管OP的要求有点古怪)+1用于避免一堆重新计算。
for x in range(1, 11):
for y in range(1, 11):
print("x is %s, y is %s" % (x, y))
import math
cosines = map(math.cos, xrange(1, 11))
cosines.append(cosines[0])
from operator import sub
print map(sub, cosines[1:], cosines[:-1])
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])]