Python高级特性——迭代(Iteration)
1、给定一个集合list或者tuple,可以通过for …… in ……的语法来实现循环遍历,这个循环我们就叫做迭代
迭代list:
>>> m = ['haha','hehe','heihei','gaga'] >>> for li in m: ... print(li) ... haha hehe heihei gaga
迭代字符串:
>>> n = 'abcdefg' >>> for str in n : ... print(str) ... a b c d e f g
迭代dict,迭代key
>>> l = {'name':'wuchong','age':15} >>> for dic in l: ... print(dic) ... name age
迭代value:
>>> for dic in l.values(): ... print(dic) ... wuchong 15
同时迭代key、value:
>>> for key,value in l.items(): ... print(key,value) ... name wuchong age 15
Python中,只要是可迭代对象,都可以迭代。
那么,如何判断一个对象是不是可迭代对象呢?方法是通过collections中的Iterable类型判断。
>>> from collections import Iterable >>> isinstance('123',Iterable) True >>> isinstance([1,2,3],Iterable) True >>> isinstance(123,Iterable) False
可知,整数类型不是可迭代类型。
通过Python内置的enumerate函数可以把一个list变成索引-元素对的形式:
>>> m ['haha', 'hehe', 'heihei', 'gaga'] >>> for dx,value in enumerate(m): ... print(dx,value) ... 0 haha 1 hehe 2 heihei 3 gaga
练习:使用迭代从一个list中查询最大值和最小值,如果list为None,返回[None,None],并返回一个tuple
>>> def find(l): ... if l==[]: ... return (None,None) ... else: ... min = max = l[0] ... for i in l: ... if i<min : ... min = i ... if i>max: ... max = i ... return (min,max)>>> l=[3,6,4,8,1,0]>>> find(l)(0, 8)>>> l=[]>>> find(l)(None, None)
转载于:https://www.cnblogs.com/hiwuchong/p/8052818.html
Python高级特性——迭代(Iteration)相关推荐
- Python高级特性:切片、迭代、列表生成式、生成器与迭代器
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程 ...
- 【Python基础】Python高级特性:切片、迭代、列表生成式、生成器与迭代器
接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程了.今天的笔记内容是Python高级特性,其中包括快速访问对象类型元素的切片.循环中的迭代意义.方便的列表生成式操作以及生成器和迭代器 ...
- Python学习笔记(五) Python高级特性
Python高级特性 一. 切片 python中提供了切片(Slice)操作符 , 可以方便的获取list或tuple中的某一段元素 . # -*- coding : utf-8 -*- #Pytho ...
- Python高级特性——切片(Slice)
Python高级特性--切片(Slice) 摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >> ...
- 深入详解python高级特性——函数柯里化(Currying)与反柯里化
前言:本章的内容本来很简单,但是涉及到的理论部分相对较多,想要彻底弄懂前因后果需要具备以下几个知识点, (1)python的高阶函数 (2)python的装饰器本质 (3)Python的functoo ...
- 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程
文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...
- Python高级特性
我一直认为Python是一门很神奇的语言.神奇之处在于其既可阳春白雪,亦可下里巴人.也就是其简单到几乎所有的人稍加学习即可上手,但是你如果细细品味,就会发现他还有很多高深的东西.正如一位漂亮的姑娘,一 ...
- Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...
- python高级特性_Python高级特性
参考原文 开篇:高级特性是用来简化我们常用操作的特性,合理利用高级特性可以使代码更简洁.明了. 切片 取list或tuple中的指定索引范围的操作,用循环十分繁琐,因此Python提供了切片(Slic ...
最新文章
- NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
- Windows server 2003 DHCP全攻略(二)
- python科学计算笔记(八)pandas大数据HDF5硬盘操作方式
- linux macos 界面对比,GNOME 3与Mac OS X 10.7 (Lion)的纵览模式比较
- [css] css中的border:none和border:0px有什么区别?
- oracle不停机迁移数据库,Oracle 12.2 使用datagurd技术极短停机时间内快速迁移数据库方案步骤...
- Visual Studio 2015 RC中的ASP.NET新特性和问题修正
- java 扫描自定义注解_利用spring 自定义注解扫描 找出使用自定义注解的类
- html书签展示(带搜索)
- cad补全三视图_机械制图课程中补全三视图的解题方法
- [HAOI2009]毛毛虫(树形dp)
- 启蒙||那些人,那些剧||爱情+文学+英语
- 漏型和源型区分,NPN和PNP区别
- qq消息定时自动发送的简单实现策略
- eclipse上配置JavaFX完整教程
- Oracle如何保持一致读?
- NR PRACH (七)Type 2(2-step) RA 参数及相关规定
- Lonza X-VIVO 15 无血清培养基使用攻略
- OpenStack Ironic实现裸机部署
- Vue eslint 报错 eval can be harmful解决办法
热门文章
- Redis sorted set 类型操作及常用命令
- ios 刷新遮罩遮罩_在Adobe XD中进行遮罩的3种方法
- 尤大是如何发布vuejs的,学完可以应用到项目
- React 与 Vue 框架的设计思路大 PK
- html (align 、placeholder )
- Why Apache Spark is a Crossover Hit for Data Scientists [FWD]
- python 带pydev的eclipse无法导入win32api包(或无法导入其他包)
- 数据源的配置和使用 视频下载
- java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出)
- 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付