python迭代

一、迭代

1、迭代的概念

使用for循环遍历取值的过程叫做迭代

2、可迭代对象

使用for循环遍历取值的对象叫做可迭代对象,比如:元祖、列表、字典、集合、range、字符串

3、判断对象是否是可迭代对象

#元组、列表、字典、字符串、集合、range都是可迭代对象
from collections import Iterable

#判断对象是否是指定类型
result = isinstance(要判断的对象,Iterable)
print("是否是可迭代对象:",result)

4、自定义可迭代对象

自定义可迭代对象:在类里面定义__iter__方法创建的对象就是可迭代对象

自定义可迭代类型代码

form collections import Iterable

#自定义可迭代对象,在类里面定义__iter__方法创建的对象就是可迭代对象
class MyList(object):
    def __init__(self):
        self.my_list = list()

    #添加指定元素
    def append_item(self,item):
        self.my_list.append(item)

    def __iter__(self):
        #可迭代对象的本质:遍历可迭代对象的时候其实获取的是可迭代对象的迭代器,然后通过迭代器获对象中的数据
        pass

my_list = MyList()
my_list.append_item(1)
my_list.append_item(2)
result = isinstance(my_list,Iterable)

print(result)

for value in my_list:
    print(value)

    

执行结果:

Traceback (most recent call last):
True
  File "/Users/hbin/Desktop/untitled/aa.py", line 24, in <module>
    for value in my_list:
TypeError: iter() returned non-iterator of type 'NoneType'

执行结果可以看出,遍历可迭代对象依次获取数据需要迭代器

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值