python迭代器面试题_面试题 | Python中可迭代对象怎么获取迭代器?

【摘要】今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,今天要说的Python中可迭代对象怎么获取迭代器。

废话不多说,开始今天的题目:

问:说说Python中可迭代对象怎么获取迭代器?

答:今天这个问题,需要看下面代码解析,再来说参考答案,这样理解的看面试题,对大家的学习更有帮助,千万别死记硬背,那样记不牢的。

列表、元组、字典、字符串都是可迭代对象。

数字、布尔值都是不可迭代的。

昨天我们用了个简单的列表来说迭代器的用法:

list = [1,2,3,4] # list是可迭代对象lterator = iter(list) # 通过iter()方法取得list的迭代器

print(next(lterator)) # 1 通过next()获取下一个位置的值

print(next(lterator)) # 2print(next(lterator)) # 3

print(next(lterator)) # 4输出:1234

也给大家预留了个问题,列表怎么可以有一个迭代器?今天就要重点来说说这个问题 。

import collectionsprint(isinstance([1, 2, 3], collections.Iterable)) #isinstance(object,classinfo)内置函数可以判断一个对象是否是一个已知的类型输出:True

从上面代码可以知道,可迭代对象都是collections模块里的Iterable类创建出来的实例。你写一个列表,不是简单一个列表,其实它就是Iterable类创建的实例对象。点进Iterable的类看一下:

class Iterable(metaclass=ABCMeta): __slots__ = () @abstractmethod def __iter__(self): # 注意点 while False: yield None

原来由Iterable创建的对象,是有一个方法__iter__(self)的。这个方法就是返回一个迭代器的。所以,由Iterable类创建的实例对象,是可以拿出一个迭代器的。

以上就是今天的全部内容了,如果面试的时候有人问你“Python中可迭代对象怎么获取迭代器?”这个问题,小编相信大家应该不会再慌了,如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!环球网校的小编在这里祝大家python相关工作面试顺利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值