gpt4 book ai didi

python - 将列表设置为 10,000 个空白值然后填充或附加到空列表会更快吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:47 25 4
gpt4 key购买 nike

如果我有一个长度为 10,000 的列表,是否更快:

  1. 制作一个空白列表,然后附加到它。

或者

  1. 制作一个包含 10,000 个空白条目的列表,并将每个条目设置为数据。

示例代码

# first case 
a=[]
for i in range(10000):
a.append(input())
# second case
a= [0]*10000
for i in range(10000):
a[i] = input()

最佳答案

timeit模块非常适合测试这类事情:

# first case
def test1():
a=[]
for i in range(10000):
a.append(1)
# second case
def test2():
a= [0]*10000
for i in range(10000):
a[i] = 1

#list comprehension
def test3():
a = [1 for _ in range(10000)]

import timeit
n = 10000
print("appending: ",timeit.timeit(test1,number=n))
print("assigning: ",timeit.timeit(test2,number=n))
print("comprehension:",timeit.timeit(test3,number=n))

输出:

appending:     13.14265166100813
assigning: 8.314113713015104
comprehension: 6.283505174011225

根据要求,我将 timeit.timeit(...) 替换为 sum(timeit.repeat(..., repeat=7))/7 以获得平均时间得到这个结果:

appending:     12.813485399578765
assigning: 8.514678678861985
comprehension: 6.271697525575291

这与我最初的结果并没有太大的不同。

关于python - 将列表设置为 10,000 个空白值然后填充或附加到空列表会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com