1.何为迭代:

对于给定list或者tuple,通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration).

2.python中利用for...in语句来完成迭代语句:

(1)迭代list:

使用for...in语句迭代list时,是通过下标完成的,迭代tuple类似

>>>months=['January','February','March']
>>>for i in range(len(months)):
print(months[i])
January
February
March

(2)迭代dict:

首先明确,list这种数据类型是有下标的,但是像dict这种没有没有下标的数据类型,同样是可以进行迭代的,只要该数据类型是可迭代对象,比如就迭代dict的方法如下:

>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for key in d:
print(key)
--------------------------------------------------------------------------------
小明
小兰
小红

注意:a.因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

b.dict迭代,在默认情况下迭代的key,如果想要迭代value可以用for value in d.values(),

如果要同时迭代key和value,可以用for k, v in d.items()

迭代value情况:

>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for value in d.values():
print(value)
-----------------------------------------------------------------------------------
65
0
88

同时迭代key和value情况:

>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for k, v in d.items():
print(k,v)
-----------------------------------------------------------------------------------
小明 0
小红 65
小兰 88

(3)迭代字符串

因为字符串也是可迭代对象,因此我们可以对字符串进行迭代:

>>>for ch in 'ABC':
print(ch)
-------------------------------------------------------------------------------------
A
B
C

3.利用collections模块的Iterable类型判断一个对象是否是可迭代对象

通常我们使用for循环时,只要这个对象是可迭代对象,for循环就能正常运行,而不用去管这个对象的是哪种数据类型的,但是我们怎么才能知道这个对象是否是可迭代对象呢,这就需要我们自己去判断了,方法是通过collections模块的Iterable类型判断

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

4.使用python内置函数enumerate函数同时迭代list索引及元素本身

>>>for i, value in enumerate(['January','February','March']):
print(i,value) ----------------------------------------------------------------------------
0 January
1 February
2 March

ps:上述的for循环语句,引用了两个变量,这在python中是很常见的,例:

>>> for x, y in [(1, 2), (2, 4), (3, 8)]:
... print(x, y)
...
---------------------------------------------------------------
1 2
2 4
3 8

  

python之迭代的更多相关文章

  1. python基础——迭代

    python基础——迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for .. ...

  2. Python可迭代对象、迭代器和生成器

    Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...

  3. 孤荷凌寒自学python第十六天python的迭代对象

    孤荷凌寒自学python第十六天python的迭代对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 迭代也就是循环. python中的迭代对象有相关的如下几个术语: A容器 contrai ...

  4. Python基础 - 迭代

    前言 在pythone中经常可以看到iterable这样的描述. 直译为迭代. 这是在C中没有的概念. iterable(可迭代) 支持每次返回自己所包含的一个成员的对象就是可迭代对象. iterab ...

  5. Python中迭代输出(index,value)的几种方法

    需求如下:迭代输出序列的索引(index)和索引值(value). 1.创建测试列表: >>> lst = [1,2,3,4,5] 2.实现方法如下: #方法1:range()+le ...

  6. python可迭代对象和迭代器和生成器

    可迭代对象 刚开始我认为这两者是等同的,但后来发现并不是这样:下面直接抛出结论: )可迭代对象包含迭代器. )如果一个对象拥有__iter__方法,其是可迭代对象:如果一个对象拥有next方法,其是迭 ...

  7. python 可迭代对象

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 可以用for 进行迭代的,一般都是可迭代对象: ...

  8. Python 索引迭代

    1.使用enumerate函数 L = ['Adam', 'Lisa', 'Bart', 'Paul'] for index, name in enumerate(L):     print inde ...

  9. python 可迭代对象与迭代器

    生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数 ...

随机推荐

  1. JDK源码学习之 java.util.concurrent.automic包

    一.概述 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下无锁的进行原子操作.原子变量的底层使用了处理器提供的原子指令,但是不同的CP ...

  2. Java堆内存溢出模拟

    先了解一下Java堆: 关于Java内存区域的分配,可以查看Java运行时数据区域一篇文章. Java堆是虚拟机内存管理中最大的一块区域,该区域是线程共享的,某Java进程中所有的线程都可以访问该区域 ...

  3. #阿里云#云服务器部署Django(基础篇)

    前言 本人能力有限,本文只是简单介绍基础部署流程,没有过多考虑系统安全等因素,请谅解.初学者参考了解,大神勿喷. 纯测试部署,采用阿里云ECS,系统Ubuntu 16.04 64位,部署采用nginx ...

  4. SQL Server数据库——数据库的数据导出与数据导入

    http://jingyan.baidu.com/article/3c48dd34531d5de10be358b8.html

  5. 漫谈NIO(1)之计算机IO实现

    1.前言 此系列将尽可能详细介绍断更博客半年以来个人的一个成长,主要是对Netty的源码的一个解读记录,将从整个计算机宏观IO体系上,到Java的原生NIO例子最后到Netty的源码解读.不求完全掌握 ...

  6. 极光推送android sdk集成步骤

    推送,用极光,大家都说好,哈哈. 进入正题: 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(基本上现在都已经支持了,循例说一下)  , ...

  7. echart 桑基图操作事项

    例图 注意: option = { label:{//formatter名字 show:true, formatter:function(obj){ return obj.data.name+'_12 ...

  8. Linux笔记:linux常用命令

    文件目录操作 1.展示目录命令 ls # 展示当前目录下的可见文件 ls -a # 展示当前目录下所有的文件(包括隐藏的文件) ls -l # 展示当前目录下文件的详细信息 ll # 展示当前目录下文 ...

  9. java学习-sha1散列算法

    直接调用HashKit.sha1(String str)方法就可以了,,返回的是16进制的字符串长度是40, 也就是用md.digest()方法解析出来的字节数是160字节长度. 而MD5散列算法生成 ...

  10. windows设置多用户模式

    在实际使用我们较多使用的都是windows系统的单用户模式,它意味着当我们登录一个用户的时候如果另外一个用户也在登录,那么就得等待另外一个用户退出后才可以登录我们这个用户,但是实际需求中,我们经常会遇 ...