循环检查不存在的列表

时间:2017-09-09 12:21:27

标签: python list while-loop

我创建了一个引用列表的函数,其中包含更多列表。对于列表中的每个列表,该函数完成特定于相应列表的操作(其工作)。每次运行时,一个变量(表示要搜索的列表)增加1.然而,一旦没有剩余的列表,我无法让我的while循环退出,我收到: " IndexError:列出索引超出范围"

我的代码:

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

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

2 个答案:

答案 0 :(得分:0)

使用嵌套for循环更好:

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

答案 1 :(得分:0)

只需遍历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 ...

希望这有帮助!