python之迭代
1.何为迭代:
对于给定list或者tuple,通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration).
2.python中利用for...in语句来完成迭代语句:
(1)迭代list:
使用for...in语句迭代list时,是通过下标完成的,迭代tuple类似
>>>months=['January','February','March']
>>>for i in range(len(months)):
print(months[i])
January
February
March
(2)迭代dict:
首先明确,list这种数据类型是有下标的,但是像dict这种没有没有下标的数据类型,同样是可以进行迭代的,只要该数据类型是可迭代对象,比如就迭代dict的方法如下:
>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for key in d:
print(key)
--------------------------------------------------------------------------------
小明
小兰
小红
注意:a.因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
b.dict迭代,在默认情况下迭代的key,如果想要迭代value可以用for value in d.values(),
如果要同时迭代key和value,可以用for k, v in d.items()。
迭代value情况:
>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for value in d.values():
print(value)
-----------------------------------------------------------------------------------
65
0
88
同时迭代key和value情况:
>>>d = {'小明':0,'小红':65,'小兰':88}
>>>for k, v in d.items():
print(k,v)
-----------------------------------------------------------------------------------
小明 0
小红 65
小兰 88
(3)迭代字符串
因为字符串也是可迭代对象,因此我们可以对字符串进行迭代:
>>>for ch in 'ABC':
print(ch)
-------------------------------------------------------------------------------------
A
B
C
3.利用collections模块的Iterable类型判断一个对象是否是可迭代对象
通常我们使用for循环时,只要这个对象是可迭代对象,for循环就能正常运行,而不用去管这个对象的是哪种数据类型的,但是我们怎么才能知道这个对象是否是可迭代对象呢,这就需要我们自己去判断了,方法是通过collections模块的Iterable类型判断
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
4.使用python内置函数enumerate函数同时迭代list索引及元素本身
>>>for i, value in enumerate(['January','February','March']):
print(i,value) ----------------------------------------------------------------------------
0 January
1 February
2 March
ps:上述的for循环语句,引用了两个变量,这在python中是很常见的,例:
>>> for x, y in [(1, 2), (2, 4), (3, 8)]:
... print(x, y)
...
---------------------------------------------------------------
1 2
2 4
3 8
python之迭代的更多相关文章
- python基础——迭代
python基础——迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for .. ...
- Python可迭代对象、迭代器和生成器
Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...
- 孤荷凌寒自学python第十六天python的迭代对象
孤荷凌寒自学python第十六天python的迭代对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 迭代也就是循环. python中的迭代对象有相关的如下几个术语: A容器 contrai ...
- Python基础 - 迭代
前言 在pythone中经常可以看到iterable这样的描述. 直译为迭代. 这是在C中没有的概念. iterable(可迭代) 支持每次返回自己所包含的一个成员的对象就是可迭代对象. iterab ...
- Python中迭代输出(index,value)的几种方法
需求如下:迭代输出序列的索引(index)和索引值(value). 1.创建测试列表: >>> lst = [1,2,3,4,5] 2.实现方法如下: #方法1:range()+le ...
- python可迭代对象和迭代器和生成器
可迭代对象 刚开始我认为这两者是等同的,但后来发现并不是这样:下面直接抛出结论: )可迭代对象包含迭代器. )如果一个对象拥有__iter__方法,其是可迭代对象:如果一个对象拥有next方法,其是迭 ...
- python 可迭代对象
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 可以用for 进行迭代的,一般都是可迭代对象: ...
- Python 索引迭代
1.使用enumerate函数 L = ['Adam', 'Lisa', 'Bart', 'Paul'] for index, name in enumerate(L): print inde ...
- python 可迭代对象与迭代器
生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数 ...
随机推荐
- Sip协议
会话初始协议.SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的(请求应答的通讯模式).微信采用了自主研发的SYNC协议,他通过“握 ...
- 【GDOI2015】 水题 tarjan缩点
这一题,我当年只会$60$分做法..... 我们考虑对原图跑一波边双,然后缩成一个森林. 对于森林中的每一棵树,我们钦定一个根. 令$siz[x]$表示以$x$为根的子树中,在原图中点的个数. 令当前 ...
- C语言 for循环之阶乘的算法
int n; scanf("%d", &n); int fact = 1; int i = 1; while ( i <= n ) { fact *=i; i++; ...
- asp.net MVC 多系统目录结构
学习了几天的mvc5,发现vs把所有的控制器都放在同一个目录Controllers目录下,细想一下,假如一个项目包含几个系统: 行政办公系统.培训管理系统.督办管理系统.会议管理系统…… 如果还把控制 ...
- 【数组】Product of Array Except Self
题目: iven an array of n integers where n > 1, nums, return an array output such that output[i] is ...
- css 实现元素长宽等比缩放
实现思路(长宽比2:1): 以父级元素为基准, 子级 width:100%; (也就是父级宽度的 100%), padding-top:50% (也就是父级宽度的 50%, 根据 css 规范, pa ...
- Android RecyclerView的使用
RecyclerView是什么? RecyclerView是一种新的视图组件,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的suppo ...
- C++的函数对象优于函数指针地方
转载自:http://blog.csdn.net/huang_xw/article/details/7934156 在C++编程语言中,有很多功能都与C语言相通,比如指针的应用等等.在这里我们介绍的则 ...
- fastText 安装
Windows: https://www.lfd.uci.edu/~gohlke/pythonlibs/#fasttext 下载需要的版本 然后:pip install 文件名
- C#循环读取文件流,按行读取
public Dictionary<string,string> GetSourceDisksElements(String section) { section = "[&qu ...