关于《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()函数不断趋于完善的过程的思考放在明天的博客中,要努力奋斗,同时晚安好梦。

分享给朋友:
您可能感兴趣的文章:
随机阅读: