-
-
字面意思:对象?python中一切皆对象。一个实实在在存在的值,对象。
-
可迭代?:更新迭代。重复的,循环的一个过程,更新迭代每次都有新的内容。可以进行循环更新的一个实实在在的值。
-
专业角度:可迭代对象?内部含有__iter _方法的对象,可迭代对象。
-
判断是不是可迭代对象:__iter in dir(对象)
s1= 'fidsk'
print('__iter__'indir(s1)) -
优点:
-
存储的数据直接能显示,比较直观
-
拥有的方法比较多,操作比较方便
-
-
缺点:
-
占用内存。
-
不能直接通过for循环,不能直接取值,(索引 k)除外
-
-
-
迭代器:
-
迭代器的定义
-
字面意思:更新迭代,器:工具,可迭代更新的工具
-
专业角度:内部含有 __inter _next 两个方法的对象就是迭代器
-
可以判断是否是迭代器:_inter _nex 是不是在dir(对象)
-
-
优点:
-
节省内存:
-
-
缺点
-
速度慢
-
不走回头路
-
-
可迭代对象和迭代器的对比
-
可迭代对象是一个操作方法比较多,比较直观,存储数据相对少(几百万个对象,8G内存是可以承受的)的一个数据集。
-
当你侧重于对于数据可以灵活处理,并且内存空间足够,将数据集设置为可迭代对象是明确的选择。
-
是一个非常节省内存,可以记录取值位置,可以直接通过循环+next方法取值,但是不直观,操作方法比较单一的数据集。
-
当你的数据量过大,大到足以撑爆你的内存或者你以节省内存为首选因素时,将数据集设置为迭代器是一个不错的选择。(可参考为什么python把文件句柄设置成迭代器)。
-
-