博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习札记(十六) 高级特性2 迭代
阅读量:5314 次
发布时间:2019-06-14

本文共 1281 字,大约阅读时间需要 4 分钟。

参考:

Note

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

在C、C++、Java等语言中,for循环迭代是通过下标实现的,如:

for (int i = 0; i < s.length(); i++) {    printf("%c ", s[i]);}

而在Python中,迭代是通过for...in...实现的,只要对象是可迭代对象,无论支持下标与否,都可以进行迭代。

eg.

#!/usr/bin/env python3L = ['it', 'is', 'a', 'list']for i in range(4) :    print(L[i])T = ('it', 'is', 'a', 'tuple')for i in range(4) :    print(T[i])

output:

sh-3.2# ./iteration1.py itisalistitisatuple

因此,Pythonfor循环抽象程度要高于C、Java等语言的for循环。

2.Python支持迭代不支持下标的对象,如dict与字符串:

eg.dict

dic = {'Chen' : 20, 'Number' : '952693358', 'City' : 'FuZhou'}for key in dic :     print(key, dic[key])
Chen 20Number 952693358City FuZhou

eg.string

str1 = 'HeyGirl'for i in str1 :    print(i)
HeyGirl

所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

3.判断一个对象是可迭代对象 => 通过collections模块的Iterable类型:

>>> from collections import Iterable>>> isinstance('abc', Iterable) # 判断字符串True>>> isinstance(123, Iterable) # 判断整数False>>> isinstance((0,), Iterable) # 判断tupleTrue>>> isinstance(['a'], Iterable) # 判断listTrue>>>

4.如果要使list实现下标循环 => 内置的enumerate函数 => 将list转换为索引-元素对。

L = ['Chen', 'Mac', 'IPhone', 'Github']for i, value in enumerate(L) :    print(i, value)
0 Chen1 Mac2 IPhone3 Github

2017/2/5

转载于:https://www.cnblogs.com/qq952693358/p/6368141.html

你可能感兴趣的文章
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>