my_list = [12 , 23 , 8 , 6]
for i in range(len(my_list)):
number = 5
set1 = my_list[i] - number
set2 = my_list[i+1] - number
给出一个列表,我要做的是从列表中的每个数字中减去一组数字(我上面任意选择数字5),并比较前一个结果的前一个结果,看看哪个结果更小。在我浏览完整个列表之后,我想设置一个变量“回答”给出最小数字的结果(所以在我的列表实例中,它将是最后一个,列表[4]应该给我一个结果1)
上面的代码是我到目前为止所处的位置,但是已经遇到一个错误,表明我的列表索引超出了范围。关于如何解决这个问题的任何想法?另外,如果有人能指出我将如何实现整体结果的正确方向,那将非常感激!
答案 0 :(得分:0)
您的my_list'长度为4,如果您在最后一行中调用了' 4 + 1&#39指数,则超出范围。
答案 1 :(得分:0)
你不需要set2,因为for循环的工作是为你增加。
你所要做的就是比较当前的set1结果,看它是否小于当前的最小值,我们已将其指定为列表位置[0]中的数据,并将其放在原位,此过程为重复,直到for循环通过列表中的所有数据。
my_list = [12 , 23 , 8 , 6]
currentmin = my_list[0]
number = 5
for i in range(len(my_list)):
set1 = my_list[i] - number
if set1<currentmin:
currentmin=set1