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

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

  

   列表  movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91,

               ["Graham Chapman",

                   ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]

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

  

 print(movies[4][1][3])  
输出结果为:

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

  

 print(movies)

输出结果为:

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

  

   for i in movies:
  print(i) 输出结果为:


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

  

 for i in movies:
if isinstance(i,list):
for j in i:
print(j)
else:
print(i)
输出结果为:

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

  

 for i in movies:
if isinstance(i,list):
for j in i:
if isinstance(j,list):
for k in j:
print(k)
else:
print(j)
else:
print(i)
输出结果为:

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

 首先定义函数:
def print_lol(the_list):
for i in the_list:
if isinstance(i,list):
print_lol(i)
else:
print(i) 然后使用print_lol()来对movies列表进行输出,即print_lol(movies)
输出结果为:

  

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

关于《Head First Python》一书中print_lol()函数的思考的更多相关文章

  1. 关于HashMap中hash()函数的思考

    关于HashMap中hash()函数的思考 JDK7中hash函数的实现   static int hash(int h) { h ^= (h >>> 20) ^ (h >&g ...

  2. python开发_python中的函数定义

    下面是我做的几个用列: #python中的函数定义,使用和传参 def_str = '''\ python中的函数以如下形式声明: def 函数名称([参数1,参数2,参数3......]): 执行语 ...

  3. python 在机器学习中应用函数

    浅述python中argsort()函数的用法 (1).先定义一个array数据 1 import numpy as np 2 x=np.array([1,4,3,-1,6,9]) (2).现在我们可 ...

  4. APUE 书中 toll 函数

    今天看unix环境高级编程时,随着书上的源码打了一遍,编译时提示 toll函数未定义, 找了半天(恕我对上下文不了解).看了英文版和源代码文件才知道, 中文版打印错了: toll => atol ...

  5. python unittest框架中addCleanup函数详解

    接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)¶ Add ...

  6. python 利用matplotlib中imshow()函数绘图

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...

  7. (转)python类class中_init_函数以及参数self的简单解释

    1)_init_函数(方法) #-*- encoding:utf-8 -*- class NewClass(object): def __init__(self,name): print self s ...

  8. python通过mongoengine中connect函数连接多个数据库

    mongoengine支持程序同时连接多个数据库,这些数据库可以位于一个或多个mongo之中,通过alias名称区分不同的连接即可. 可以通过switch_db切换到不同的数据库,进行读写操作,swi ...

  9. python和numpy中sum()函数的异同

    转载:https://blog.csdn.net/amuchena/article/details/89060798和https://www.runoob.com/python/python-func ...

随机推荐

  1. 32.Linux-2440下的DMA驱动(详解)

    DMA(Direct Memory Access) 即直接存储器访问, DMA 传输方式无需 CPU 直接控制传输,通过硬件为 RAM .I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大 ...

  2. ASP.NET Core教程【二】从保存数据看特有属性与服务端验证

    前文索引: 在layout.cshtml文件中,我们可以看到如下代码: <a asp-page="/Index" class="navbar-brand" ...

  3. ViewPager +无限轮播+滑动速度修改+指示小点

    养成习惯,做过代码记录总结. ViewPager 使用记录 1. ViewPage 位于V4包. 2.主要用来做banner轮播. 3.原理:适配器重用提高效率,与listview等一个原理. 下面记 ...

  4. cocos2dx3.2移植android

    LOCAL_PATH := $(call my-dir)LOCAL_MYDIR = $(LOCAL_PATH)/../../Classesinclude $(CLEAR_VARS) $(call im ...

  5. thinkphp做搜索功能

    一般后台都需要做一些搜索功能,直接上图. 至于前端页面大家自己设计.

  6. 初学者易上手的SSH-整合

    许久没更新博客了! spring还有一章aop(面向切面),我就没讲述了,你们可以去看下代理模式. 那么我们开始整合:struts2  2.3.4 ,hibernate 5.2.10 ,spring ...

  7. SpringMvc架构下css、js、jpg加载失败问题

    SpringMvc架构下css.js.jpg加载失败问题 springMvc搭建成功后,页面出现一些错误,jsp.js等静态资源加载失败.导致页面没有显示任何样式以及 此处原因很简单,是因为相对路径在 ...

  8. HDU1248--完全背包

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. 在Linux中使用线程

    我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下.如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级. 首先说明一下,在Linux编写多线程程序需要包含头文件p ...

  10. SQL Server学习之路(一):建立数据库、建立表

    0.目录 1.前言 2.建立数据库 2.1 通过SSMS建立数据库 2.2 通过SQL语句建立数据库 3.建立表 3.1 通过SSMS建立表 3.2 通过SQL语句建立表 1.前言 配置是win10+ ...