很快:我有一个充满数字的文件。我使用此函数将此文件加载到列表中:
with open("log.txt") as log:
avg = log.read().split(",")
avg = [int(i) for i in avg]
print("list constructed.")
现在我要删除列表中大于某个数字的所有值。我设置了这个循环:
while (max(avg)) > 200:
avg.remove(max(avg))
不幸的是,每次迭代需要花费大量的时间。差不多五秒钟。我应该提到文件log.txt
和扩展名列表avg
有超过1.01亿个条目,这使得每次迭代5秒的速度无法忍受。有没有办法更优雅地做到这一点,最重要的是,更快?我对编程完全不熟悉,所以我很感激你的帮助,谢谢!
答案 0 :(得分:2)
替换第一个循环
avg = [int(i) for i in avg]
有条件的:
avg = [int(i) for i in avg if int(i) <= 200]