>本篇将介绍Python的迭代,更多内容请参考:[Python学习指南](http://www.cnblogs.com/miqi1992/p/8082471.html)

简介

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

在Python中,迭代是for...in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:

for(i=0; i<list.length; i++){
n = list[i]
}

可以看出,Python的for循环抽象程度要高于Java的for循环

因为,Python的for循环不仅可以用在list或tuple上,还可以用在任何可迭代对象上。

那么,可迭代对象有哪些呢?怎么判断一个对象是否是可迭代对象呢?可以用collections模板里面的iterable包的isinstance函数进行判断:

>>>from collections import Iterable  #载入模块
>>>isinstance('abc', Iterable) #字符串是可迭代对象吗?
True
>>> isinstance([1,2,3],Iterable) #list是可迭代对象吗?
True
>>> isinstance({'dede':123},Iterable) #字典是可迭代对象吗?
True

字典的迭代

>>> d={'python':1,'php':2,'java':3}

#默认迭代的是key
>>> for i in d:
print(i)
python
php
java
#自定义迭代key
>>> for key in d.keys():
print(key)
python
php
java
#迭代value
>>> for value in d.values():
print(value)
2
#同时迭代key,value
>>> for k , v in d.items():
print(k,v)
python 1
php 2
java 3
>>>

列表和元祖包含下标的迭代

#对于一个列表
language = ['python', 'php', 'java', 'c++'] #第一种
for x in range(len(language)):
print(x, language[x])
#第二种
for i, value in enumerate(language):
print(i, value)
#运行结果
0 python
1 php
2 java
3 c++
#在同一行输出:
for i ,value in enumerate(lanage):
print(i,value ,end=', ')
结果:
0 python, 1 php, 2 java, 3 c++,

任何可迭代对象都可以作用与for循环,保活我们自定义的数据类型,只要符合迭代条件,就可以使用for循环

参考

廖雪峰-迭代

Python迭代的更多相关文章

  1. 完全理解 Python 迭代对象、迭代器、生成器(转)

    完全理解 Python 迭代对象.迭代器.生成器 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators » nvie.com,俺写的这篇文章是 ...

  2. 完全理解 Python 迭代对象、迭代器、生成器

    完全理解 Python 迭代对象.迭代器.生成器 2017/05/29 · 基础知识 · 9 评论 · 可迭代对象, 生成器, 迭代器 分享到: 原文出处: liuzhijun    本文源自RQ作者 ...

  3. Python迭代(入门8)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407980.html 本文出自:[Edwin博客园] Python迭代 1. 什么是迭代 注意: 集合是指包 ...

  4. Python 迭代删除重复项,集合删除重复项

    1. 迭代删除重复项:先排序列表项,然后通过新迭代(not in)去除重复项,分片打印 def sanitize(time_string): if '-' in time_string: splitt ...

  5. 完全理解Python迭代对象、迭代器、生成器

    在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict ...

  6. python迭代和切片

    from collections import Iterable #切片************************ # #取一个list或tuple的部分元素是非常常见的操作 ,Python提供 ...

  7. 理解Python迭代对象、迭代器、生成器

    作者:zhijun liu链接:https://zhuanlan.zhihu.com/p/24376869来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文源自RQ作 ...

  8. Python 迭代器之列表解析与生成器

     [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将A ...

  9. Python 迭代器之列表解析

     [TOC] 尽管while和for循环能够执行大多数重复性任务, 但是由于序列的迭代需求如此常见和广泛, 以至于Python提供了额外的工具以使其更简单和高效. 迭代器在Python中是以C语言的 ...

随机推荐

  1. Linux 安装 mysql 并配置

    1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可 ...

  2. overflow使用說明

    必須設置的CSS屬性: { display:block; //或者inline-block,text-overflow:ellipsis只對block或者inline-block有效 white-sp ...

  3. 记录一次无聊的(经历了Nodejs -> Shell -> C)的探索问题过程

    提出问题 在运行项目的服务器的git是1.8.3.1版本的时候,pm2 deploy 项目,服务器fetch不到最新的一次commit. 对于这个问题,在pm2的github也有issues讨论.然后 ...

  4. java equals()方法

    java基础学习总结--equals方法 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class Te ...

  5. Maven在Windows中的配置以及IDE中的项目创建

    Maven在Windows下的配置 1.Maven下载地址:http://maven.apache.org/download.cgi,下载红框里的版本即可. 2.解压到D盘: 3.修改配置文件sett ...

  6. oracle数据库知识点

    1.oracle启动后的服务 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存 ...

  7. JAVA 局部变量表

    1. 除了 long,double 占用两个slot 之外,其他类型均占用一个slot. 2.在内容相同的情况下, 实例方法(不加 static) 会比 类方法 (static)对占用一个局部变量位置 ...

  8. ThinkPHP5高阶实战教程

    tp5项目:https://www.kancloud.cn/mikkle/thinkphp5_study/396283

  9. ASP.NET没有魔法——开篇-用VS创建一个ASP.NET Web程序

    为什么写这一系列文章? 本系列文章基于ASP.NET MVC,在ASP.NET Core已经发布2.0版本,微服务漫天的今天为什么还写ASP.NET?. 答:虽然现在已经有ASP.NET Core并且 ...

  10. js-注释代码习惯

    功能块代码 /** * xxxx */ 定义的函数或方法 /* xxxx */ 调用了某个函数或方法 // <--xxx