如果我有
list1 = [3, 4, 6, 8, 13]在for循环中,我想从后面的值中减去值i。在上面的例子中: 4-3,6-4,8-6,13-8.(我想跳过第一个值)所需的结果
list2 = [3, 1, 2, 2, 5]我可以在一个for循环/列表理解中这样做吗?
更确切地说,我想要在dataframe中这样做吗?
list1
0 3
1 4
2 6
3 8
4 13手术后
list1 list2
0 3 3
1 4 1
2 6 2
3 8 2
4 13 5我尝试过循环、lambda函数和列表理解,并尝试使用枚举()访问位置索引,但我想不出如何在要从中减去的值之前访问该值。
编辑:下面的答案有效。非常感谢!
发布于 2022-11-08 15:29:47
发布于 2022-11-08 15:32:59
dataframe解决方案已经发布。这是清单的一个实现:
list1 = [3, 4, 6, 8, 13]
list2 = []
for i, v in enumerate(list1):
list2.append(list1[i] - list1[i-1])
list2[0] = list1[0]
print(list2) # [3, 1, 2, 2, 5]最后,在清单理解方面:
list2 = [list1[i] - list1[i-1] for i, v in enumerate(list1)]
list2[0] = list1[0]发布于 2022-11-08 15:34:55
您可以向后循环for x in range(len(list) - 1, 0, -1):,然后可以执行list[x] = list[x] - list[x - 1]计算。
https://stackoverflow.com/questions/74363238
复制相似问题