当前位置: 首页 > 面试题库 >

范围(len(列表))还是枚举(列表)?

公冶安怡
2023-03-14
问题内容

以下哪项将被认为是更好/更清晰/更快/更多的“ Pythonic”?我不在乎列表的内容L,只关心它的持续时间。

a = [f(n) for n, _ in enumerate(L)]

要么

a = [f(n) for n in range(len(L))]

如果有什么不同,该函数也会f利用len(list)


问题答案:

一些快速的计时运行似乎使第二个选项range()略有优势enumerate()

timeit a = [f(n) for n, _ in enumerate(mlist)]
10000 loops, best of 3: 118 us per loop

timeit a = [f(n) for n in range(len(mlist))]
10000 loops, best of 3: 102 us per loop

只是为了好玩xrange()而已(Python v2.7.2)

timeit a = [f(n) for n in xrange(len(mlist))]
10000 loops, best of 3: 99 us per loop

我希望 首先 使用 可读代码 ,然后使用(xrange()如果可用)(例如,Python
3.x之前的版本),然后使用range()enumerate()



 类似资料:
  • 问题内容: 如果我只想在循环中使用索引,则最好将函数与 还是?即使我根本不使用? 问题答案: 我会使用它,因为它更通用- 例如它将在可迭代对象和序列上工作,并且仅返回对对象的引用的开销并不算大-尽管(对我而言)按您的意图更易于阅读- 在不支持…的物体上折断

  • 问题内容: 是否可以创建枚举值的ArrayList(并对其进行操作)?例如: 问题答案: 是的,绝对有可能,但是您必须这样做 然后,您可以将元素添加到:或。

  • 我在python上有一个元素列表,我可以在index.html页面上以下拉列表的形式获得它,并将一个选定的值发送到另一个页面进行处理。问题是如何选择列表中的多个元素。我的意思是只有几个没有或库的元素?

  • 我有枚举类,我想向列表视图显示枚举数据。谁能说出如何做到这一点?

  • 我有如下代码块: 在代码中,分号(;)被编译器标记为冗余。同时如果我使用 为什么在这两种情况下,分号都标记为多余?如何在Java中定义枚举列表的结尾?

  • 我需要将枚举列表映射到Postgres中的表。 对于1:1关系的一般映射,我发现这篇文章非常有用。代码如下所示: 但是如果是一个,那么我就可以轻松地找到一个解决方案。因为定义失败了。 为了使其具体化:我有一个表,例如,我可以在其中存储和。为了示例起见,我可以存储多个(例如,基于时间的)。那么如何正确地定义它,如果我有 以同样的方式定义它的方法会导致异常(这似乎很清楚,因为注释是针对而不是针对)