问题描述
如果我有一些像下面这样的代码,它将返回 x 的几个值。 那么由此,我如何计算 x 的所有两个相邻值之间的差异?
y = 0.1
while y <=1:
y += 0.01
x = y**2
print(x)
1楼
这非常简单,唯一的技巧是从数字开始:
Python 的不接受浮点数,所以我们像这样捏造它:
ys = [y*0.01 for y in range(10,100,1)]
从那让我们从我们的ys
列表中生成我们所有的xs
:
xs = [y**2 for y in ys]
现在我们需要获取所有x
和x-1
s,这很容易使用列表切片和:
adjacents = zip(xs[:-1],xs[1:])
最后,解包元组并减去它们以获得相邻值的差异:
diffs = [b-a for a,b in adjacents]
您甚至可以在一行上执行此操作:
diffs = [((y+1)*0.01)**2 - (y*0.01)**2 for y in range(10,100,1)]