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

参考

廖雪峰-迭代

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏余林丰

5.比较排序之归并排序(非递归)

  在上一节中讲解了归并排序的递归版《4.比较排序之归并排序(递归)》,通常来讲,递归版的归并排序要更为常用,本节简单介绍下非递归版的归并排序。思路和递归版相...

2689
来自专栏python学习指南

Python迭代

本篇将介绍Python的迭代,更多内容请参考:Python学习指南 简介 在Python中,如果给定一个list或者tuple,我们可以通过for循环来遍...

2089
来自专栏海天一树

小朋友学C++(12):多态

(一) 先编写函数: #include <iostream> using namespace std; class Shape { protected:...

3246
来自专栏calmound

Javascript数组

定义    定义空数组       var arr = new Array();       var arr = [];    定义一个包含1,2,3的数组  ...

3456
来自专栏Python小屋

Python元组与列表的相同点与区别

列表和元组都属于有序序列,支持使用双向索引访问其中的元素、使用内置函数len()统计元素个数、使用运算符in测试是否包含某个元素、使用count()方法统计指定...

2996
来自专栏算法与数据结构

栈与递归 实现 十进制转二进制

6-4 十进制转换二进制(15 分) 本题要求实现一个函数,将正整数n转换为二进制后输出。 函数接口定义: void dectobin( int n ); 函数...

3025
来自专栏叁金大数据

自学Python二 Python中的屠龙刀(续)

秉承着一切皆对象的理念,函数作为对象,可以为其赋值新的对象名,也可以作为参数传递给其他函数!

1203
来自专栏程序员互动联盟

【记忆卡片】Java关键字介绍

abstract: 抽象的,用在类的声明中来指明一个类是不能被实例化的,但是可以被其他类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被...

3338
来自专栏Deep learning进阶路

Python随记(一)列表和元组

Python随记(一)列表和元组 Python中最基本的数据结构就是序列了。Python一共包含6种内建序列:列表、元组、字符串、Unicode字符串、xra...

2020
来自专栏LhWorld哥陪你聊算法

python 使用小结

使用Python 已经一段时间了 ,现将python 中可能用到的技巧和一些知识点分享如下。

1071

扫码关注云+社区

领取腾讯云代金券