您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python列表连接效率

python列表连接效率

这是一张有关BigYellowCactus答案中使用的计时如何随着列表的长度增加而变化的图表。垂直轴是在usec中初始化两个列表并将一个列表插入另一个列表所需的时间。水平轴是列表中的项目数。

为什么不只是timeit呢?

import timeit

create_data = """\
list_a = range(10)
list_b = range(10)
"""

t1 = timeit.Timer(stmt=create_data + """\
list_a = list_b + list_a
""")

t2 = timeit.Timer(create_data + """\
for item in list_b:
    list_a.insert(0, item)
""")

t3 = timeit.Timer(create_data + """\
for item in list_a:
    list_b.append(item)
list_a = list_b
""")

t4 = timeit.Timer(create_data + """\
list_a[0:0] = list_b
""")

for i, t in enumerate([t1,t2,t3,t4]):
    print i, "%.2f usec/pass" % (1000000 * t.timeit(number=100000)/100000)

结果:

0 0.73用户/通过 1 2.79用户/通过 2 1.66用户/通过 3 0.77用户/通过

list_a = list_b + list_a

for item in list_b:
    list_a.insert(0, item)

for item in list_a:
    list_b.append(item)
list_a = list_b

list_a[0:0] = list_b
python 2022/1/1 18:34:38 有297人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶