关于《Head First Python》一书中print_lol()函数的思考

关于《Head First Python》一书中print_lol()函数的思考

 

  在《Head First Python》第一章中,讲述到Python处理复杂数据(以电影数据列表为例),首先将电影数据创建为Python列表,由于Python的变量标识符没有类型,列表中的每一个数据项可以是任何类型的数据,甚至可以是另外一个列表,并且可以无限嵌套。下面开始print()和print_lol()的表演。

  

 

1   列表  movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91,
2 
3               ["Graham Chapman",
4 
5                   ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]

 

step1(使用数据偏移量进行列表内数据的精准查找):

  

1 print(movies[4][1][3])  

输出结果为:

 

step2(使用一层print()对整个列表进行输出):

  

1 print(movies)

输出结果为:

 

 

step3(使用print()加上一层for循环对整个列表进行输出):

  

1   for i in movies: 
2       print(i)

输出结果为:


 

step4(使用print()加上两层for循环加上一个if else对整个列表进行输出):

  

1 for i in movies:
2     if isinstance(i,list):
3         for j in i:
4             print(j)
5     else:
6         print(i)

输出结果为:

 

step5(使用print()加上三层for循环加上两个if else对整个列表进行输出):

  

 1 for i in movies:
 2     if isinstance(i,list):
 3         for j in i:
 4             if isinstance(j,list):
 5                 for k in j:
 6                     print(k)
 7             else:
 8                 print(j)
 9     else:
10         print(i)

输出结果为:

 

step6(多层嵌套实在是太麻烦了,试试构造函数然后递归,祭出今天的重场戏print_lol()):

 1 首先定义函数:
 2 def print_lol(the_list):
 3     for i in the_list:
 4         if isinstance(i,list):
 5             print_lol(i)
 6         else:
 7             print(i)
 8 
 9 然后使用print_lol()来对movies列表进行输出,即print_lol(movies)
10 输出结果为:

   

  今天加班太晚了,有点累了,那么就将关于print_lol()函数不断趋于完善的过程的思考放在明天的博客中,要努力奋斗,同时晚安好梦。

 

posted @ 2017-12-28 23:41  王俊玺  阅读(889)  评论(0编辑  收藏  举报