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)

posted on 2017-12-17 18:30 风雨一肩挑 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/hiwuchong/p/8052818.html

Python高级特性——迭代(Iteration)相关推荐

  1. Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程 ...

  2. 【Python基础】Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程了.今天的笔记内容是Python高级特性,其中包括快速访问对象类型元素的切片.循环中的迭代意义.方便的列表生成式操作以及生成器和迭代器 ...

  3. Python学习笔记(五) Python高级特性

    Python高级特性 一. 切片 python中提供了切片(Slice)操作符 , 可以方便的获取list或tuple中的某一段元素 . # -*- coding : utf-8 -*- #Pytho ...

  4. Python高级特性——切片(Slice)

    Python高级特性--切片(Slice) 摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >> ...

  5. 深入详解python高级特性——函数柯里化(Currying)与反柯里化

    前言:本章的内容本来很简单,但是涉及到的理论部分相对较多,想要彻底弄懂前因后果需要具备以下几个知识点, (1)python的高阶函数 (2)python的装饰器本质 (3)Python的functoo ...

  6. 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程

    文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...

  7. Python高级特性

    我一直认为Python是一门很神奇的语言.神奇之处在于其既可阳春白雪,亦可下里巴人.也就是其简单到几乎所有的人稍加学习即可上手,但是你如果细细品味,就会发现他还有很多高深的东西.正如一位漂亮的姑娘,一 ...

  8. Python高级特性(切片,迭代,列表生成式,生成器,迭代器)

    掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...

  9. python高级特性_Python高级特性

    参考原文 开篇:高级特性是用来简化我们常用操作的特性,合理利用高级特性可以使代码更简洁.明了. 切片 取list或tuple中的指定索引范围的操作,用循环十分繁琐,因此Python提供了切片(Slic ...

最新文章

  1. NeurIPS TAPE | 用于评估蛋白质表示学习性能的多任务平台
  2. Windows server 2003 DHCP全攻略(二)
  3. python科学计算笔记(八)pandas大数据HDF5硬盘操作方式
  4. linux macos 界面对比,GNOME 3与Mac OS X 10.7 (Lion)的纵览模式比较
  5. [css] css中的border:none和border:0px有什么区别?
  6. oracle不停机迁移数据库,Oracle 12.2 使用datagurd技术极短停机时间内快速迁移数据库方案步骤...
  7. Visual Studio 2015 RC中的ASP.NET新特性和问题修正
  8. java 扫描自定义注解_利用spring 自定义注解扫描 找出使用自定义注解的类
  9. html书签展示(带搜索)
  10. cad补全三视图_机械制图课程中补全三视图的解题方法
  11. [HAOI2009]毛毛虫(树形dp)
  12. 启蒙||那些人,那些剧||爱情+文学+英语
  13. 漏型和源型区分,NPN和PNP区别
  14. qq消息定时自动发送的简单实现策略
  15. eclipse上配置JavaFX完整教程
  16. Oracle如何保持一致读?
  17. NR PRACH (七)Type 2(2-step) RA 参数及相关规定
  18. Lonza X-VIVO 15 无血清培养基使用攻略
  19. OpenStack Ironic实现裸机部署
  20. Vue eslint 报错 eval can be harmful解决办法

热门文章

  1. Redis sorted set 类型操作及常用命令
  2. ios 刷新遮罩遮罩_在Adobe XD中进行遮罩的3种方法
  3. 尤大是如何发布vuejs的,学完可以应用到项目
  4. React 与 Vue 框架的设计思路大 PK
  5. html (align 、placeholder )
  6. Why Apache Spark is a Crossover Hit for Data Scientists [FWD]
  7. python 带pydev的eclipse无法导入win32api包(或无法导入其他包)
  8. 数据源的配置和使用 视频下载
  9. java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出)
  10. 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付