国产成人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里是很常见的,比如下面的代码:


关注

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

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

坤坤寒入桃子里电视剧免费看| 四个人换着来免费观看第二季| 日本妈妈DNA和儿子DNA区别| 我挺进岳湿润的花苞李强视频| 《强壮的公2做爱观看| 《交换做爰》在线观看| 《温柔的大姐姐》动漫免费观看| 电影《满足2》完整版在线观看| 《湿点》未增减板相似| 白日梦我免费观看电视剧| 内衣展| 私处按摩SPA养生精油| 国产X9X9X9X9X9X任意...| 没戴奶罩他含了一天| 老公刚日完又让朋友日| 日亚M码是日本的还是中国的| 天美麻花星空高清MV播放音乐| 黑料社区| 宝宝水帘洞都拉丝了怎么办| 李成敏| 妈妈与儿子高清免费版电视剧| 视频| 亚州精品无码A片毛片吸奶视频| 电动吸奶器| 两富婆轮流上阵| 女性扒开大腿内侧小肚子痒| 《办公室高潮秘书2》电影影| 日本在线观看| 香蕉漫画免费读漫画网下拉式| 双男主做酱酱酿酿视频大全真人版 | 黄金网站9.1免费入口| 《男医生的特殊治疗》| 巨乳童颜| 男人晚上吃奶时乳房会变| 亚州久久久久久精品A片69| 做爰高潮A片(毛片)| 小妹妹爱大棒棒免费观看电视剧动..| 乱浮生(高干)BY行魅小说免费.. | 妈妈的朋友| 7K7K影院免费观看电视剧大全 | 姐姐的闺蜜2字ID高冷霸气