Python迭代
>本篇将介绍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迭代的更多相关文章
- 完全理解 Python 迭代对象、迭代器、生成器(转)
完全理解 Python 迭代对象.迭代器.生成器 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators » nvie.com,俺写的这篇文章是 ...
- 完全理解 Python 迭代对象、迭代器、生成器
完全理解 Python 迭代对象.迭代器.生成器 2017/05/29 · 基础知识 · 9 评论 · 可迭代对象, 生成器, 迭代器 分享到: 原文出处: liuzhijun 本文源自RQ作者 ...
- Python迭代(入门8)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407980.html 本文出自:[Edwin博客园] Python迭代 1. 什么是迭代 注意: 集合是指包 ...
- Python 迭代删除重复项,集合删除重复项
1. 迭代删除重复项:先排序列表项,然后通过新迭代(not in)去除重复项,分片打印 def sanitize(time_string): if '-' in time_string: splitt ...
- 完全理解Python迭代对象、迭代器、生成器
在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict ...
- python迭代和切片
from collections import Iterable #切片************************ # #取一个list或tuple的部分元素是非常常见的操作 ,Python提供 ...
- 理解Python迭代对象、迭代器、生成器
作者:zhijun liu链接:https://zhuanlan.zhihu.com/p/24376869来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文源自RQ作 ...
- Python 迭代器之列表解析与生成器
 [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将A ...
- Python 迭代器之列表解析
 [TOC] 尽管while和for循环能够执行大多数重复性任务, 但是由于序列的迭代需求如此常见和广泛, 以至于Python提供了额外的工具以使其更简单和高效. 迭代器在Python中是以C语言的 ...
随机推荐
- jmeter 压测最近的心得体会
笔者14年入坑测试,截止到17年年初一直在游戏公司,压测,我都没有怎么用过,特别是jmeter去压测,自己学习,可是先找到切入点,于是乎, 其实也算是我学习后,先找一个更大的平台吧,我聊了几个游戏公司 ...
- NDK调试
第一种(控制台输出): 1.配置好环境变量,这是为了方便起见.将你sdk和ndk的根目录放到环境变量path中.配置完成之后可以来个小检测: 在命令行分别输入adb和ndk-stack后点击回车,只要 ...
- angular $compiler
directive是如何被compiled HTML编译发生在三个阶段: 1.$compile遍历DOM节点匹配directives 如果compiler找到元素上的directive,directi ...
- SQL Server 2016 Alwayson新增功能
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/ 概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alw ...
- Corn Fields poj3254(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6081 Accepted: 3226 Descr ...
- BZOJ-1010-[HNOI2008]玩具装箱toy(斜率优化)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- JAVA编码互转(application/x-www-form-urlencoded)
本质上来说,java.net.UrlEncoder适用于将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法 时 ,使用 但!一般情况 ...
- install xdebug
安装准备 安排php的xdebug扩展,在php.ini上配置xdebug.通过phpinfo或者php-m 查看 [Xdebug] zend_extension ="D:\upupw7\P ...
- VLAN的三种类型及三种属性
- GBK和UTF8有什么区别
GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符. UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多 ...