如何存储迭代的最后值?

0 投票
3 回答
9550 浏览
提问于 2025-04-18 01:26

我刚开始学Python,有个简单的问题。

我写了一个循环,它会遍历一个列表里的值,然后把这些值转换成一个圆的角度(乘以360)。现在我想做的是存储上一次循环的值。比如,运行完这段代码后,我想得到:

79.2
118.08
21.6
29.52
10.8
7.2
7.2

代码:

for i in range(len(percentages_minus_index)):
    other_segment_angles = percentages_minus_index[i] * 360

简单来说,如果第一个值是79.2,我想在循环中把它存到一个变量里,然后在下一次循环时替换掉这个值。比如:

第一次循环:79.2,之前的值 = 没有 第二次循环:118.08,之前的值 = 79.2

……等等等等

有人能帮帮我吗?

3 个回答

0

percentages_minus_index = [23,14,16,1]

previousValues = [None]*len(percentages_minus_index)

for i in range(len(percentages_minus_index)):

other_segment_angles = percentages_minus_index[i] * 360

print(other_segment_angles)

if i > 0:

previousValues[i] = percentages_minus_index[i-1] * 360

print(previousValues[i])

这段代码的意思是,首先定义了一个叫做 percentages_minus_index 的列表,里面有四个数字:23、14、16 和 1。

接着,创建了一个叫 previousValues 的列表,里面的每个位置都先放一个 None,这个列表的长度和 percentages_minus_index 一样。

然后,代码开始一个循环,循环的次数和 percentages_minus_index 列表的长度相同。在每次循环中:

1. 计算当前数字(percentages_minus_index[i])乘以360,得到一个叫 other_segment_angles 的值,并把这个值打印出来。

2. 如果当前的索引 i 大于0,也就是说不是第一个数字,就会计算前一个数字(percentages_minus_index[i-1])乘以360,并把这个结果放到 previousValues 列表的对应位置,然后打印出来。

0

你是说像这样的吗?

percentages_minus_index = [23,14,16,1]

previousValues = [None]*len(percentages_minus_index)

for i in range(len(percentages_minus_index)):
    other_segment_angles = percentages_minus_index[i] * 360
    print(other_segment_angles)
    if i > 0:
        previousValue[i] = percentages_minus_index[i-1] * 360
    print(previousValue[i])
4

你可以使用另一个变量来存储之前的值,而且有一种更好的方法来循环一个列表,像这样:

previous = None
for percentage in percentages_minus_index:
    other_segment_angles = percentage * 360
    print previous
    previous = other_segment_angles

不过我想知道你为什么要这么做,因为你的程序并不依赖于之前的值。例如,如果我想计算 n 个数字的总和(不使用 sum),那么:

previous = 0
for number in range(10):
    temp = previous + number
    previous = temp

撰写回答