使用for循环对列表进行双重迭代

时间:2018-02-23 23:43:34

标签: python list for-loop

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)

上面的代码是我到目前为止所处的位置,但是已经遇到一个错误,表明我的列表索引超出了范围。关于如何解决这个问题的任何想法?另外,如果有人能指出我将如何实现整体结果的正确方向,那将非常感激!

2 个答案:

答案 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
相关问题