我创建了一个函数,该函数引用了其中包含其他列表的列表。对于列表中的每个列表,该功能完成了针对相应列表(有效)的操作。每次运行时,一个变量(指示要搜索的列表)会增加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 ...
希望这会有所帮助!