如何快速遍历python中的数组

时间:2021-03-01 06:00:39

标签: python

我正在学习 Python,但我发现自己遇到了一些我不明白的瓶颈。

我在文件上写的部分很快,但迭代或者列表的创建真的很慢。

此代码段在不到一秒的时间内运行,这是不可能的。

我做错了什么? 谢谢

import sys
import time

t0=time.time() 
arr=list(range(1,10000))
for i in arr:
    arr[arr.index(i)]= 'dsaijhjsdha' + str(i) + '\n'

open("bla.txt", "wb").write(bytearray(''.join(arr),'utf-8'))
d=time.time()-t0
print ("duration: %.2f s." % d)

2 个答案:

答案 0 :(得分:3)

import sys
import time

t0=time.time() 
arr=list(range(1,10000))
for i in arr:
    arr[i-1]= 'dsaijhjsdha' + str(i) + '\n'

open("bla.txt", "wb").write(bytearray(''.join(arr),'utf-8'))
d=time.time()-t0
print ("duration: %.2f s." % d)

看看上面的解决方案。 这将实现与您想要的相同的输出。

Output: duration: 0.02 s.

答案 1 :(得分:1)

您可以使用列表理解在一行中完成所有这些操作:

使用这个:

arr = ['dsaijhjsdha' + str(i) + '\n' for i in range(1, 10000)]    
print(arr)

代替:

arr=list(range(1,10000))
for i in arr:
    arr[arr.index(i)]= 'dsaijhjsdha' + str(i) + '\n'

使用 arr.index(i) 会不必要地增加计算成本。