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

从Python 2.6的迭代器中获取最后一项的最佳方法是什么?例如说


my_iter = iter(range(5))

什么是获得的最短码/干净的方式4从my_iter?


我可以做到这一点,但效率似乎并不高:


[x for x in my_iter][-1]


哈士奇WWW
浏览 1139回答 3
3回答

慕姐4208626

item = defaultvaluefor item in my_iter:    pass

猛跑小猪

使用deque大小为1的。from collections import deque#aa is an interatoraa = iter('apple')dd = deque(aa, maxlen=1)last_element = dd.pop()

www说

如果您使用的是python 3.x:*_, last = iterator # for a better understanding check PEP 448print(last)如果您使用的是python 2.7:last = next(iterator)for last in iterator:    continueprint last注意:通常上面提出的解决方案是,你需要定期的情况是什么,但如果你是在处理大数据量,这是更有效地使用一个deque大小1.(的来源)from collections import deque#aa is an interatoraa = iter('apple')dd = deque(aa, maxlen=1)last_element = dd.pop()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python