- 主题:python3流行iter之后,如何取“第一个结果”?
这个可能不太行……
几十万条内容
【 在 iMx 的大作中提到: 】
: r = list(iter_messages())[0]
--
FROM 139.227.19.*
next为什么会有问题呢?按说和for一样?
【 在 VincentGe 的大作中提到: 】
: 最好选这个,next可能存在问题,list可能内存爆炸
: #发自zSMTH@CDU.MP
--
FROM 139.227.19.*
因为无法确定next调用的是哪个对象的__next__
建议使用 next(iter(obj)) ,记得处理Stopiteration
【 在 JulyClyde 的大作中提到: 】
:
: next为什么会有问题呢?按说和for一样?
: 【 在 VincentGe 的大作中提到: 】
: : 最好选这个,next可能存在问题,list可能内存爆炸
: : #发自zSMTH@CDU.MP
#发自zSMTH@CDU.MP
--
FROM 113.143.106.*
iterable 和iterator不是一个东西,
list这种加一个函数iter(lst)就行
【 在 VincentGe 的大作中提到: 】
: iterable 的实现是由__iter__完成的,一个标准的iterbator才会用的自身的__next__,如果不是,那它实现的 __ITER__ 的返回值的__next__才会实现这个,但是next获取不到
:
: #发自zSMTH@CDU.MP
--
FROM 106.37.206.*
iterator 一定是 iterable
【 在 maming 的大作中提到: 】
:
: iterable 和iterator不是一个东西,
: list这种加一个函数iter(lst)就行
:
: 【 在 VincentGe 的大作中提到: 】
#发自zSMTH@CDU.MP
--
FROM 113.143.107.*
【 在 VincentGe 的大作中提到: 】
: iterator 一定是 iterable
:
: #发自zSMTH@CDU.MP
for in 只要求是iterable就可以,
换句话说, __iter__返回一个generator给for in 也是一样可以工作的。
这种情况,是不存在什么iterator的。
--
FROM 124.126.0.*