Python,第一个列表索引 - 前一个列表索引然后打印

Python, First list index - previous list index then print

首先我英语不好,请多多关照。 我的代码有问题。我需要从当前列表索引中减去之前的列表索引。

让我用我的代码向您展示一个示例;

xvalues = [1,1,2,3,3,3,4,1,1,1,2,3,4,5,6,6,-1,-23,-44,-512,1,2,3,4,4,4,4,4,4]

for i in xvalues:
    print([i])

我需要在 for 循环中从当前值中减去之前的值。 我试过了

for i in xvalues:
    print([i-1])

这是从我列表中的每个值中减去“-1”。我需要简单地将其添加到 for 循环中;

[1]-[0] after this, do this ,[2]-[1] after ,do this [3]-[2]... 

我正在寻找帮助我的人,我希望这个话题能拯救某人:)

在下面的代码中,后续的减法是由新值完成的。 例如,输出的前三个值是 [1,0,2,...]。注意在第三位,我们得到的结果是 2 因为 2-0,因为 0 是第二位的新值。

xvalues = [1,1,2,3,3,3,4,1,1,1,2,3,4,5,6,6,-1,-23,-44,-512,1,2,3,4,4,4,4,4,4]

for i in range(1, len(xvalues)):
  xvalues[i] = xvalues[i] - xvalues[i-1]

“我需要从当前列表索引中减去之前的列表索引。”

重要提示:

[1]-[0] after this, do this ,[2]-[1] after ,do this [3]-[2]... 

你可以试试这个。

xvalues = [1,1,2,3,3,3,4,1,1,1,2,3,4,5,6,6,-1,-23,-44,-512,1,2,3,4,4,4,4,4,4]

for i,item in enumerate(xvalues):
    if i > 0:
        previous = xvalues[i-1]#previous = item
        print(f"{item}-({previous})")
        sub = item - previous
        print("Answer: ",sub,"\n")

输出:

1-(1)
Answer:  0 

2-(1)
Answer:  1 

3-(2)
Answer:  1 

3-(3)
Answer:  0 

3-(3)
Answer:  0 

4-(3)
Answer:  1 

1-(4)
Answer:  -3 

1-(1)
Answer:  0 

1-(1)
Answer:  0 

2-(1)
Answer:  1 

3-(2)
Answer:  1 

4-(3)
Answer:  1 

5-(4)
Answer:  1 

6-(5)
Answer:  1 

6-(6)
Answer:  0 

-1-(6)
Answer:  -7 

-23-(-1)
Answer:  -22 

-44-(-23)
Answer:  -21 

-512-(-44)
Answer:  -468 

1-(-512)
Answer:  513 

2-(1)
Answer:  1 

3-(2)
Answer:  1 

4-(3)
Answer:  1 

4-(4)
Answer:  0 

4-(4)
Answer:  0 

4-(4)
Answer:  0 

4-(4)
Answer:  0 

4-(4)
Answer:  0 

您可以使用 zip:

xvalues = [1,1,2,3,3,3,4,1,1,1,2,3,4,5,6,6,-1,-23,-44,-512,1,2,3,4,4,4,4,4,4]

for x1, x2 in zip(xvalues, xvalues[1:]):
    print(x2-x1)

为了阐明语法:

[1] 创建一个包含 1 的新列表,这不是您想要的。

让我们有 x = [10, 20, 30],名为 x 的列表包含 10、20、30。然后要访问其值,我们使用 x[pos]。获取列表 x 中位置 pos 中的任何值。该位置通常称为索引。

x[0]  # returns 10
x[1]  # returns 20
x[2]  # returns 30

所有其他正索引都会抛出错误 IndexError: list index out of range

我们也可以通过变量访问索引

i = 2
x[i]  # returns 30

作为答案,我建议使用 Myccha 推荐的 zip ;)。