python学习之”迭代从入门到精通“

在开发的过程中,假如给你一个list或者tuple,我们可以通过for循环来遍历这个list或者tuple,这种遍历我们成为迭代(Iteration)。在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码

: 1 for(int x = 0;x<n;x++) 2 { 3 a[i] = i; 4 }

可以看出,Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict也可以迭代。

1. 列表(List)的迭代:

1 >>> list1 = []
2 >>> n = 10
3 >>> for i in range(n):
4 ...     list1.append(i)
5 ...
6 >>> list1
7 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
8 >>> 

2. 元组tuple的迭代:

3. 字典(Dict)的迭代:

 1 >>> #字典的迭代
 2 >>> dict1 = {‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:4}
 3 >>> dict1
 4 {‘a‘: 1, ‘c‘: 3, ‘b‘: 2, ‘d‘: 4}
 5 >>> for key in dict1:
 6 ...     print key
 7 ...
 8 a
 9 c
10 b
11 d
12 >>> 

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.itervalues(),如果要同时迭代key和value,可以用for k, v in d.iteritems()

1 def get_tp_type_name(value):
2     if value is None:
3         return ""
4
5     for k, v in TP_TYPE_CHOICE:
6         if k == value:
7             return v

4. 任意字符串的迭代:

 1 >>> for ch in "abcadadadwf":
 2 ...     print ch
 3 ...
 4 a
 5 b
 6 c
 7 a
 8 d
 9 a
10 d
11 a
12 d
13 w
14 f
15 >>> 

所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

 1 >>> from collections import Iterable
 2 >>> isinstance(‘abudauidua‘,Iterable)#str是否可以迭代
 3 True
 4 >>> isinstance(dict1,Iterable)#dict1是否可以迭代
 5 True
 6 >>> isinstance(list1,Iterable)#list1是否可以迭代
 7 True
 8 >>> isinstance(tuple1,Iterable)#list1是否可以迭代
 9 True
10 >>> isinstance(123456789,Iterable)#全数字是否可以迭代
11 False
12 >>> 

如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

1 >>> for i ,value in enumerate([‘a‘,‘b‘,‘c‘,‘d‘]):
2 ...     print i ,value
3 ...
4 0 a
5 1 b
6 2 c
7 3 d
8 >>> 

像这种在一个迭代中一次引用了两个变量在python中是很常见的一件事情,因此不应太奇怪,例如:起初我看到这样的循环输出语句也是感到很奇怪,慢慢就习惯了。

1 >>> for x,y in [(1,2),(3,4),(5,6)]:
2 ...     print x,y
3 ...
4 1 2
5 3 4
6 5 6
时间: 2024-10-25 03:42:56

python学习之”迭代从入门到精通“的相关文章

python学习线路:从入门到精通要多久

Python是近几年来的新秀语言.在编程语言的排行榜上异军突起.在目前科技的最前沿,人工智能(AI)领域也占据了一席之地.于是,追逐潮流的同学们也加入了学习Python的大军中.python学习从入门到精通要多久? 按理说,Python学习什么时候才能精通,是没有具体时间的.原因很简单,每个人的学习能力,每个人的学习强度也都不一样.另外,大家的要求也不尽一致啊.何谓"精通"?每个人都有自己的标准. Python在2018年的发展可谓是大红大紫,如今虽然接近年尾,但是各大企业对Pytho

大牛分享C++学习建议,从入门到精通速学的干货,学到就是赚发了

C++学习建议 大牛分享C++学习建议,从入门到精通速学的干货,学到就是赚发了C++缺点之一,是相对许多语言复杂,而且难学难精.许多人说学习C语言只需一本K&R<C程序设计语言>即可,但C++书籍却是多不胜数.我是从C进入C++,皆是靠阅读自学.在此分享一点学习心得.个人认为,学习C++可分为4个层次:创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之以恒C++爱好群,如果你想要学好C+

学习建设网站从入门到精通

网站建设学习流程 入门到精通 我们分为三个过程:①基础知识 ②进阶学习 ③高级部分(延伸知识)笔者从初学者到现在,经历了一些,把自己理解的,所学的,都献给爱做网站的网友们,因为我知道作为一个初学者是很迷茫的,避免学些不需要的知识,避免走弯路! [1]基础知识: 了解域名,空间,网站程序是什么? 网站程序有那些好处? [2]进阶学习: html,div+css 必须学会的技术,有必要精通 掌握一门网站程序如:DeDeCms,WordPress,Discuz 选学课 html5,css3 在原有的基

大数据学习方向,从入门到精通

推荐一个大数据学习群 119599574晚上20:10都有一节[免费的]大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享,你愿意来学习吗 很多初学者在萌生向大数据方向发展的想法之后,不免产生一些疑问,应该怎样入门?应该学习哪些技术?学习路线又是什么? 所有萌生入行的想法与想要学习Java的同学的初衷是一样的.岗位非常火,就业薪资比较高,,前景非常可观.基本都是这个原因而向往大数据,但是对大数据却不甚了解. 如果你想学习,那么首先你需要学会编

Python学习之路 - 基础入门

本系列文章使用的Python版本为3.6.2 使用开发工具为Pycharm2017 一.Python介绍 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. 目前Python主要应用领域: 云计算:云计算最火的语言, 典型应用Open

Python学习手册(1入门知识-数据类型)

UNIX env查找技巧 在一些UNIX系统上,可以用这样一种方法避免硬编码Python解释器的路径,在文件的特定的第一行注释中写上这样一句话. #! usr/bin/env/ python...script goes here 这样写之后,env程序可以通过系统搜索路径的搜索设置(例如,在绝大多数的UNIX Shell中,通过搜索PATH环境变量中罗列的所有目录)定位Python解释器.这种方法可以使得代码具有更高的可移植性,因为没有必要在所有代码的第一行都硬编码Python解释器的安装位置.

Python自动化测试之selenium从入门到精通

1. 安装selenium 首先确保python安装成功,输入python -V 这里使用pip安装selenium,详情如图所示:

Python从入门到精通高校竞赛学习系列视频课程

课程目标Python从入门到精通高校竞赛学习系列视频课程适用人群Pythhon初学者,Python开发人员,有linux操作基础,能够坚持学习不放弃的同学,课程简介从零基础学习Python编程,理论结合实践,提高自己综合能力:方向和努力决定了自己的价值:通过本课程学习我们能够掌握基本开发知识,在工作和学习中独立完成相关任务:同时我们提供全面的技术支持和指导,如果有问题可以向我们咨询,我们会积极解决学习和工作中的问题 下载地址:百度网盘请添加链接描述 原文地址:http://blog.51cto.

python学习从入门到精通要多久?

Python是近几年来的新秀语言.在编程语言的排行榜上异军突起.在目前科技的最前沿,人工智能(AI)领域也占据了一席之地.于是,追逐潮流的同学们也加入了学习Python的大军中.python学习从入门到精通要多久?按理说,Python学习什么时候才能精通,是没有具体时间的.原因很简单,每个人的学习能力,每个人的学习强度也都不一样.另外,大家的要求也不尽一致啊.何谓"精通"?每个人都有自己的标准.Python在2018年的发展可谓是大红大紫,如今虽然接近年尾,但是各大企业对Python开