循环检查不存在的列表时



我创建了一个函数,该函数引用了其中包含其他列表的列表。对于列表中的每个列表,该功能完成了针对相应列表(有效)的操作。每次运行时,一个变量(指示要搜索的列表)会增加1。但是,一旦没有剩余的列表,我就无法让我的时循环退出,我收到:" IndexError:列表索引以外的范围"

我的代码:

def my_function(selected_list):
    i = 1
    while (selected_list[i] != None):
        if ...
        if ...
    i+=1

必须使用的列表的长度在长度上都是可变的。我已经使用len(selected_list)来计数并通过if语句给出最大值,但是,一旦没有更多的列表可以阅读,我希望while语句结束。先感谢您。

最好将嵌套用于循环:

def my_function(selected_list):
    for sub_list in selected_list:
        for item in sub_list:
            # Do ...

只需循环浏览 selected_list中的列表:

最简单的方法是只使用for-loop遍历每个子列表,而不是通过增加索引来尝试通过它们来工作,直到索引不按范围为止。

def my_function(selected_list):
   for lst in selected_list:
      if ...
      if ...

如果您想知道子列表的当前索引,我可以看到您在做什么可能是一个优势。可以使用enumerate的更Pythonic来实现这一点:

def my_function(selected_list):
   for index, lst in enumerate(selected_list):
      if ...    #these calculations can now use the variable index
      if ...

希望这会有所帮助!

最新更新