python - 在 For 循环中向后循环而不反转数组的 Python 最佳实践
问题描述
在解决 Leetcode 等问题时,通常需要从数组的末尾迭代到前面,我习惯于更传统的编程语言,其中for
循环不那么尴尬,即数组的最后一个索引for(int i = n; i >= 0; i--)
在哪里n
,但在 Python 中我发现我正在做这样的事情for i in range(n,-1,-1)
,看起来有点尴尬,所以我只想知道是否有更优雅的东西。我知道我可以通过 do 来反转数组array[::-1]
,然后像往常一样使用 for range 循环,但这并不是我真正想要做的,因为它增加了问题的计算复杂性。
解决方案
使用reversed
which 不会创建新列表,而是创建一个反向迭代器,并允许您反向迭代:
a = [1, 2, 3, 4, 5]
for n in reversed(a):
print(n)
推荐阅读
- c - Makefile:需要运行 `make` 两次重新链接对象文件
- python - 如何创建一个脚本,为我提供六位数代码的所有可能组合
- javascript - 如何在javascript / nodejs中设置数组内元素的过期时间?
- mysql - Zabbix安装过程中的问题
- python - 在 google colab 中使用 bing_image_downloader 并行处理图像抓取
- java - 在java中注册一个帐户并登录
- simulation - 什么时候不重建轮子?
- sql - 根据唯一 id 从连接的多个表中汇总 SQL Server 中的某些列
- swift - 从 AVCapturePhotoOutput 裁剪 CGRect (resizeAspectFill)
- c# - C# ImageMagick 使用自定义字体