python - 以最 Pythonic 的方式仅获取迭代器的最后一个元素
问题描述
如何获取迭代器的最后一个元素?我知道我必须用尽迭代器并返回它产生的最后一个值,所以简单的方法是:
def last(it):
for value in it:
pass
return value
(你可能想抓住NameError
并提出其他的空输入,但你明白了。)
有没有我没有想到的更简单的解决方案,例如使用itertools.islice()
(虽然它似乎不接受负索引)或类似的东西?
解决方案
一个更简单的解决方案可能是使用Extended Iterable Unpacking:
*_, last = it
例子:
it = range(10)
*_, last = it
print(last)
# 9
推荐阅读
- docker - Docker Compose 中的外部卷和默认卷之间的区别?
- azure - Az Powershell 命令不适用于“云服务(经典)”
- google-api - async await , nodejs readfile 然后做其他
- reactjs - Reactjs后端连接问题
- python - 如何使此代码获取多个 yaml 输入文件并将它们转换为 .json 并将它们全部保存到指定路径
- css - 如何在原生反应中呈现 FlatList 中的方形视图列表?
- r - R - 使用 Reduce 比较对象的向量
- doxygen - 如何轻松查看 doxygen 文档?
- nginx - Kubernetes qBitTorrentWebUI 仅在路径“/”上显示
- powershell - Remove-PublicFolderClientPermission - 输出到外壳?