python迭代器

本篇将介绍Python的迭代,更多内容请参考:Python学习指南

简介

在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循环

参考

廖雪峰-迭代

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 2,067评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 2,028评论 0 5
  • 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有...
    youngkun阅读 698评论 0 0
  • https://zhuanlan.zhihu.com/p/26123333 要完全理解透生成器,需要我们先掌握三个...
    Lauzanhing阅读 465评论 0 0
  • 转载自:深入讲解Python中的迭代器和生成器 在Python中,很多对象都是可以通过for语句来直接遍历的,例如...
    bobobe阅读 1,136评论 2 4

友情链接更多精彩内容