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

  • 相关阅读:
    HDU1166:敌兵布阵(树状数组)
    elasticsearch 7.4.0依赖
    IntelliJ IDEA手工安装插件方法
    Guava入门
    Maven添加Oracle驱动及依赖
    springboot整合netty(二)
    MyBatis-Plus
    「Chris Richardson 微服务系列」服务发现的可行方案以及实践案例
    spring initializr
    String.Format( )用法
  • 原文地址:https://www.cnblogs.com/wang-junxi/p/8138338.html
Copyright © 2011-2022 走看看