【发布时间】:2020-08-19 17:25:32
【问题描述】:
编辑:我想澄清一下,我在这里询问的是明确需要索引的情况。我知道for item in items 在不需要时会更好。我长期习惯将列表项视为my_list[i] 或arr[i]。我发现列表的名称和彼此相邻的索引非常清晰和有帮助。所以我的问题是,改变我对索引和价值的看法以适应enumerate 的工作方式是否有任何优势。
正如标题所说。我读过很多回答说for i in range(len(arr)) 不好,但没有听到关于为什么会出现这种情况的充分理由。一个论点是它是“非 Pythonic”,但与 c 风格的版本相比,它表面上看起来很 Pythonic。
由于enumerate 有一个有时不需要的附加参数,我对它的优势感到困惑,因为似乎不能保证增加简单性。我想了解更多关于为什么我应该避免使用for i in range(len(arr)),或者这实际上是否只是个人喜好。
【问题讨论】:
-
因为你很少需要它。您希望多久只是项的索引?通常,您要么只想要项目,在这种情况下
for item in items:,或者您也(但不仅)需要索引,在这种情况下for index, item in enumerate(items):。跨度> -
我也想知道这一点。 @jonrsharpe,我同意如果您使用索引来访问循环内的数组,那么 enumerate 是一个更好的选择。但是在你只需要索引的情况下,它仍然是“坏的”吗?
标签: python for-loop range enumerate