【每天1分钟】PYTHON基础之条件与循环(迭代器)

【每天1分钟】PYTHON基础之数据类型-条件与循环(迭代器)可迭代在Python中如果一个对象有 iter( ) 方法或 getitem( ) 方法,则称这个对象是可迭代的( Iterable );其中 iter( ) 方法的作用是让对象可以用for … in循环遍历,getitem( ) 方法是让对象可以通过“实例名[index]”的方式访问实例中的元素。换句话说,两个条件只要满足一条,...
摘要由CSDN通过智能技术生成

【每天1分钟】PYTHON基础之条件与循环(迭代器)

可迭代

在Python中如果一个对象有 iter( ) 方法或 getitem( ) 方法,则称这个对象是可迭代的( Iterable );其中 iter( ) 方法的作用是让对象可以用for … in循环遍历,getitem( ) 方法是让对象可以通过“实例名[index]”的方式访问实例中的元素。换句话说,两个条件只要满足一条,就可以说对象是可迭代的。

迭代器

在Python中如果一个对象有 iter( ) 方法和 next( ) 方法,则称这个对象是迭代器(Iterator);其中 iter( ) 方法是让对象可以用for … in循环遍历, next( ) 方法是让对象可以通过 next(实例名) 访问下一个元素。注意: 这两个方法必须同时具备,才能称之为迭代器。

>>> from collections import Iterable, Iterator
# 列表、元组、字典、字符串是可迭代的
>>> isinstance([], Iterable)
True
>>> isinstance((), Iterable)
True
>>> isinstance({
   }, Iterable)
True
>>> isinstance('', Iterable)
True

# 但列表、元组、字典、字符串不是迭代器
>>> isinstance([], Iterator)
False
>>> isinstance((), Iterator)
False
>>> isinstance({
   }, Iterator)
False
>>> isinstance('', Iterator)
False
>>> 

# 列表 有 __getitem__ 和 __iter__ 但没有 __next__
>>> dir([])
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值