【问题标题】:Python function with list带列表的 Python 函数
【发布时间】:2020-03-25 13:40:10
【问题描述】:

自学python。我做了一个填充列表的功能。但是我有 2 个变体,我想知道哪个更好以及为什么。或者他们俩都很糟糕,我想知道真相。

def foo (x):
    l = [0] * x
    for i in range(x):
        l[i] = i
    return l

def foo1 (x):
    l = []
    for i in range(x):
        l.append(i)
    return l

【问题讨论】:

  • 我想说第二个更惯用,可以很容易地翻译成列表理解。但在这种特殊情况下,您实际上可以只做list(range(x))...

标签: python list function


【解决方案1】:

从性能的角度来看,第一个版本foo 更好:

%timeit foo(1000000)
# 52.4 ms ± 1.99 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit foo1(1000000)
# 67.2 ms ± 916 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

pythonic way to unpack an iterator in a list 将是:

list(range(x))

也更快:

%timeit list(range(1000000))
# 26.7 ms ± 661 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 2015-07-10
    • 1970-01-01
    • 2021-04-19
    • 2018-09-21
    • 2010-10-23
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多