递归处理多层嵌套列表
2014-04-25 18:29
218 查看
建立一个多层列表(即列表中存储列表)并输出列表项
如下图:
![](https://img-blog.csdn.net/20140425152949984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhbmdqaWFuZ2J1eGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可以看出输出的只是输出了外列表
当然也可以多次循环输出每一个子项:如下图所示
![](https://img-blog.csdn.net/20140425153428156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhbmdqaWFuZ2J1eGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注:isinstance(object, classinfo)为python的内置函数,用来判断对象的类型
这是三层循环,如果是很多次循环再用for循环输出就太麻烦了,
对于这种情况需要建立一个函数,递归循环输出子项
如下图所示:
![](https://img-blog.csdn.net/20140425153815578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhbmdqaWFuZ2J1eGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
只需建立函数print_lol(),如果内置函数isinstance()判断子项为列表时,调用函数print_lol()本身
然后使movies作为函数print_lol的参数,调用函数输出列表子项
对于这个嵌套列表也可以使用数组下标的方式输出其中某一项
如下图:
可以看出输出的只是输出了外列表
当然也可以多次循环输出每一个子项:如下图所示
注:isinstance(object, classinfo)为python的内置函数,用来判断对象的类型
这是三层循环,如果是很多次循环再用for循环输出就太麻烦了,
对于这种情况需要建立一个函数,递归循环输出子项
如下图所示:
只需建立函数print_lol(),如果内置函数isinstance()判断子项为列表时,调用函数print_lol()本身
然后使movies作为函数print_lol的参数,调用函数输出列表子项
对于这个嵌套列表也可以使用数组下标的方式输出其中某一项