【问题标题】:What Does Enumerate Do in This Context [Python]枚举在这种情况下做了什么 [Python]
【发布时间】:2016-04-07 22:01:42
【问题描述】:

我知道对此还有另一个答案,但这是针对复杂用户的。我是几天前开始的基本 python 用户。所以我需要一个简单的答案

我试图理解这行代码。主要是枚举部分。有人能请教 enumerate 的作用吗?

f = open("solutions.txt", "r")
searchlines = f.readlines()
for i, line in enumerate(searchlines):

提前致谢

【问题讨论】:

标签: python-3.x


【解决方案1】:

enumerate 用于生成行索引,i 变量和line 字符串,这是文本文件中的第 i 行。在任何iterable 上,从可迭代对象中获取索引都是如此常见的习惯用法,以至于enumerate 提供了一种优雅的方式来做到这一点。当然,您可以只初始化一个整数计数器 i 并在读取每一行后递增它,但 enumerate 会为您执行此操作。主要优点是代码可读性:i 变量初始化和增量语句将是记账代码,对于显示该循环尝试执行的意图不是绝对必要的。 Python 擅长以简洁明了的方式揭示代码的业务逻辑。 您可以查看 Raymond Hettinger 的演示文稿,从这些优秀的 notes 中了解更多关于惯用 python 的信息。

【讨论】:

  • 感谢您的帮助。不幸的是,我大部分都没听懂。正如我所说,我是一个初学者,对 python 仍然不太了解。你能用更简单的说法吗?
  • f = open("solutions.txt", "r") 打开文件并分配给 f,然后 f.readlines() 读取文件中的所有行并将它们放入一个列表中,分配给 searchlines 变量。 Python 中的列表是 iterable 对象。下面的 for 循环(在其他语言中称为 foreach)遍历列表中的每一行。 Enumerate 为您提供了更多信息:索引 i 对应于列表中行的索引(因此也是行号,尽管从 0 开始)。您应该通过在循环中添加: print('{0}: {1}'.format(i+1, line)) 来尝试该代码。
  • 非常感谢。 & 我不认为我现在会改变它,因为我终于让它工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
相关资源
最近更新 更多