当前位置: 首页 > news >正文

Python学习笔记 第二课 循环

 1 >>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "The Meaning of Life", 1983]
 2 >>> for eachMovie in movies:
 3     print(eachMovie)

按下两个回车后输出结果如下:

1 The Holy Grail
2 1975
3 The Life of Brian
4 1979
5 The Meaning of Life
6 1983

列表中还可以存储其他列表!

 

movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91,
          ["Graham Chapman",
          ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]
       ]
      ]

 

这样的嵌套列表用上面的for循环怎么处理呢?

>>> for each_item in movies:
    print(each_item)

    
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]

哦!没有处理干净......

再循环!

>>> for each_item in movies:
    if isinstance(each_item,list):
        for nested_item in each_item:
            if isinstance(nested_item,list):
                for deeper_item in nested_item:
                    if isinstance(deeper_item,list):
                        for deepest_item in deeper_item:
                            print(deepest_item)
                    else:
                        print(deeper_item)
            else:
                print(nested_item)
    else:
        print(each_item)

        
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones

哇塞!这倒是处理干净了,但是也太绕了吧!不过队形不错!

用函数来处理

def 函数名(参数):

  函数代码组
1 >>> def print_lol(movies):
2     for each_item in movies:
3         if isinstance(each_item,list):
4             print_lol(each_item)
5         else:
6             print(each_item)

6行代码即可完成上面的晕头转向。

引用函数:

>>> print_lol (movies)

结果如下:

 1 The Holy Grail
 2 1975
 3 Terry Jones & Terry Gilliam
 4 91
 5 Graham Chapman
 6 Michael Palin
 7 John Cleese
 8 Terry Gilliam
 9 Eric Idle
10 Terry Jones

我们以后就可以用这个函数来处理各种嵌套列表了。

定义一个列表:

>>> hello=["a","b",1,3,["hello",22,33,["ok","h"]],"zhuangshi"]

调用函数:

>>> print_lol(hello)

结果如下:

 1 a
 2 b
 3 1
 4 3
 5 hello
 6 22
 7 33
 8 ok
 9 h
10 zhuangshi

再看这个函数:

1 >>> def print_lol(movies):
2     for each_item in movies:
3         if isinstance(each_item,list):
4             print_lol(each_item)
5         else:
6             print(each_item)

在代码内部引用了自身!——递归!没错是递归。Python3默认递归深度不能超过100,但是这个深度上限可以改。

--End--

 

 

 

转载于:https://www.cnblogs.com/ibgo/p/3488175.html

相关文章:

  • 怎么设置共享文件夹
  • CentOS6.*挂载读写NTFS分区
  • 也谈谈网页上的微创新(多图:百度、淘宝、腾讯等)
  • ipv6 6to4 tunnel测试
  • windows下多线程类CThread
  • 监控UITextView和UITextField的键盘确定事件以及字数控制
  • ora01033 oracle正在初始化或关闭
  • 大韩航空如何成为一流航空——等级文化与称呼的改变
  • ScrollView中嵌套ListView的问题
  • excel常用公式
  • 【crunch bang】 增加“菜单项”
  • C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 多系统开发接口 - 苹果客户端开发接口...
  • HttpSolrServer, ConcurrentUpdateSolrServer
  • 反lj邮件的轮回2
  • ant来历
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • DOM的那些事
  • JWT究竟是什么呢?
  • NSTimer学习笔记
  • Zsh 开发指南(第十四篇 文件读写)
  • 工作手记之html2canvas使用概述
  • 规范化安全开发 KOA 手脚架
  • 力扣(LeetCode)21
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 悄悄地说一个bug
  • 使用API自动生成工具优化前端工作流
  • 微信公众号开发小记——5.python微信红包
  • 最简单的无缝轮播
  • Java总结 - String - 这篇请使劲喷我
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • (2015)JS ES6 必知的十个 特性
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (k8s中)docker netty OOM问题记录
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)计算机毕业设计ssm电影分享网站
  • (论文阅读30/100)Convolutional Pose Machines
  • (论文阅读40-45)图像描述1
  • (五)关系数据库标准语言SQL
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)基于IDEA的JAVA基础12
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)可以带来幸福的一本书
  • *** 2003
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 中的轻量级线程安全
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net快速开发框架源码分享
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [2544]最短路 (两种算法)(HDU)
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [c#基础]DataTable的Select方法