【发布时间】:2016-05-17 07:14:27
【问题描述】:
哪个更快,为什么?有明显区别吗?
""" my_list=[1,2,3...N] """
for i in my_list:
do something
或
for i in range(1,N):
do something
在我看来,在第二种情况下,range 函数将被调用 N 次,这可能会更慢,但我不知道 in 运算符的真正工作原理。
【问题讨论】:
-
range函数没有被调用 N 次。如果您使用的是 Python 3.x,则第二种方法更快,内存效率更高,因为range不会提前构造整个列表。对于 Python 2.x,您可以使用xrange获得相同的效果。 -
哦,我的意思是在 python 3 中哪个更快:第一种方法还是第二种方法?
-
@Jérôme 在 Python 3 中,第二种方法更快。为了使其在 Python 2 中更快并使用更少的内存,您可以将 range 替换为 xrange。
标签: python performance python-3.x for-loop