【head First python】之递归处理嵌套列表
2013-09-10 15:57
531 查看
【head First python】之递归处理嵌套列表
通常我们将数据储存在列表中,然后使用for循环去处理。(当然,在需要额外控制的情况下可以使用while)
Demo:
Demo:
那么这里我们可以使用python内置函数isinstance(),这个函数可以检测特定的标识符是否包含某个特定类型的数据!
Demo:
那么,就让我们更新一下代码
Demo:
Demo:
小节:
一:isinstance()内置函数会检查一个标识符是否制定某个指定类型的数据对象。
二:使用def来创建自己的函数
本文出自 “盛夏光年” 博客,请务必保留此出处http://mayday.blog.51cto.com/5166623/1293773
通常我们将数据储存在列表中,然后使用for循环去处理。(当然,在需要额外控制的情况下可以使用while)
Demo:
movies = ["托尼",1975,"杰克",91,"唐老鸭","机器猫"] for i in movies: print i上面的for可以很正常的处理列表,但是。如果列表是多维列表还能如上正常处理吗?
Demo:
movies = ["托尼",1975,"杰克",91,"唐老鸭",["机器猫","机器狗"]] for i in movies: print i经过测试,可以知道单纯的使用for无法正确的得到我们想要的结果,不过这并不是for循环的问题,而是我们并没有告诉for该如何处理找到的内列表,对于for循环来说,内列表只是外列表中的一个列表项而已,所以我们要让for知道内列表也要当做列表处理!!
那么这里我们可以使用python内置函数isinstance(),这个函数可以检测特定的标识符是否包含某个特定类型的数据!
Demo:
>>> the_list = ['aa','bb'] >>> isinstance(the_list,list) True >>> a = 'b' >>> isinstance(a,list) False这个函数是不是很酷?检测为列表返回True否则为False
那么,就让我们更新一下代码
Demo:
movies = ["托尼",1975,"杰克",91,"唐老鸭",["机器猫","机器狗"]] for list_wai in movies: if isinstance(list_wai,list): #判断当前循环取值是否为列表 for list_nei in list_wai: #上面判断为列表则运行该for处理这个内列表 print(list_nei) #打印处理好的内列表数据 else: print(list_wai) #判断不为列表的项则直接打印出来上面的代码很好的处理了内列表的数据,但是如果内列表中还有一个内列表,甚至是N个内列表,上面这段代码可能就有点力不从心了!所以,现在该创建一个函数,使用递归!
Demo:
movies = ["托尼",1975,"杰克",91,"唐老鸭",["机器猫","机器狗",['我是内内列表',['我是内内内列表']]]] def print_list(the_list): #定义一个名为print_list的函数,带有名为the_list的形参 for list_wai in the_list: #使用for处理这个形参 if isinstance(list_wai,list): #如果当前列表项为内列表则在下面继续调用这个函数! print_list(list_wai) else: print(list_wai)#如果列表项不为内列表,则直接打印这个列表项 print_list(movies)#运行这个函数,并带入通过形参带入列表当然,我们可以进一步将这个函数定义为一个模块,上传至PyPI上与这个世界上所有的python爱好者分享!
小节:
一:isinstance()内置函数会检查一个标识符是否制定某个指定类型的数据对象。
二:使用def来创建自己的函数
本文出自 “盛夏光年” 博客,请务必保留此出处http://mayday.blog.51cto.com/5166623/1293773
相关文章推荐
- Head First Python---------(一)第一章(初识Python__人人都爱列表)、第二章(共享你的代码__函数模块)、第三章(文件与异常__处理错误)
- [Head First Python]3. 文件与异常:处理错误
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- HeadFirstPython 学习笔记(0)--list comprehension(列表推导)
- 递归处理多层嵌套列表
- HeadFirstPython---------(三)第五章(推倒数据__处理数据)
- 《head first python》——理解数据:列表排序与集合
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- Head First Python 第二章 函数模块&第三章 文件与异常&第四章 持久存储&第五章 处理数据
- Python多层嵌套list的递归处理方法(推荐)
- [Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- 递归处理多层嵌套列表
- Python 处理多层嵌套列表
- 递归处理多层嵌套列表