国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > 详解python中的迭代

详解python中的迭代

头像

silencement

2019-09-04 17:10:363213浏览 · 0收藏 · 0评论

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

在Python中,迭代是通过for ... in来完成的,而很多语言比如C语言,迭代list是通过下标完成的,比如Java代码:

for (i=0; i<list.length; i++) {
    n = list[i];
}

可以看出,Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。

list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。

由于字符串也是可迭代对象,因此,也可以作用于for循环:

>>> for ch in 'ABC':
...     print(ch)
...
A
B
C

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

那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:


关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

我和两个小婕子做过爱| 班主任解开内裤让我桶她| 《黑寡妇3:满天星法版》| 《帐篷里的秘密》动漫| 美女和男生一起努力的生孩子视频..| 打扑克牌男女| 快拨出我是你母亲的歌曲播放| 性感内衣女装| 变硬最快的方法是什么| 二妈的秘密短剧免费版| 二人生猴子全程免费下载| 《朋友的未婚妻》| 共享女儿小诗1~10章的背景资..| 美国禁忌2在线观看电视剧| 《准儿媳》在线观看完整版免费| 坤坤寒进桃子里在线看歌词 | 《法国空乘4》在线观看| 女人高潮抖动多久能恢复| 公厕少年NASA动漫免费观看| 代练通| 人与动物免费观看电视剧完整版| 成色18K1.220.38软件| 英语班长乖乖挽起裙子怎么| 京东影业JD008苏小小| 快乐公媳1-36集全免费看| 三个男人躁我奶头好舒服| 朕心爱的丑姑娘| 丈夫不在的日子中字头| PRONHUB| 小妹妹爱大棒棒免费观看电视剧| 翁和媳小莹浴室欢爱52章| 江忍| 《厨房激战5》完整版在线观看 | 男女做受A片AAAA| 小洞流口水了 是不是饿了| 《偷吃爸爸的擎天柱》电影在线看 | 女子赤身跳钢管舞视频| 坤坤寒进桃子里在线看歌词| 动漫《纯洁的修女》在线看| 女被扒开腿狂躁XXXXX视频 | 罗志祥多人