为了账号安全,请及时绑定邮箱和手机立即绑定

从Python迭代器获取最后一项的最干净方法

从Python迭代器获取最后一项的最干净方法

哈士奇WWW 2019-12-03 14:58:13
从Python 2.6的迭代器中获取最后一项的最佳方法是什么?例如说my_iter = iter(range(5))什么是获得的最短码/干净的方式4从my_iter?我可以做到这一点,但效率似乎并不高:[x for x in my_iter][-1]
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

item = defaultvalue

for item in my_iter:

    pass


查看完整回答
反对 回复 2019-12-03
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

使用deque大小为1的。


from collections import deque


#aa is an interator

aa = iter('apple')


dd = deque(aa, maxlen=1)

last_element = dd.pop()


查看完整回答
反对 回复 2019-12-03
?
www说

TA贡献1775条经验 获得超8个赞

如果您使用的是python 3.x:


*_, last = iterator # for a better understanding check PEP 448

print(last)

如果您使用的是python 2.7:


last = next(iterator)

for last in iterator:

    continue

print last


注意:


通常上面提出的解决方案是,你需要定期的情况是什么,但如果你是在处理大数据量,这是更有效地使用一个deque大小1.(的来源)


from collections import deque


#aa is an interator

aa = iter('apple')


dd = deque(aa, maxlen=1)

last_element = dd.pop()


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 1138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号