好吧,这里有一点上下文:我正在处理存储在csv文件中的一些3D线框对象(带有由其角点定义的窗口的墙)。 作为示例,我在csv文件中存储了大约2000个入口点,这是8面墙,接近500个窗口。
我的最终目标是将所有数据存储到x个共面线列表中。
为了从这些点获得线,我将点两两匹配,并确保我没有处理窗口的对角线,然后将该线添加到列表中。
这部分已经弄清楚并且可以很好地工作,但是我想知道从那时起哪种方法更有效/被认为是最好的:
最好先将所有线放入大列表中,然后将它们分类为共面线的x个列表,还是在我遍历这些点以创建线时将它们直接分类到x个列表中更好行?
第一种情况对我来说更清晰易懂,但可能会更慢,因为这意味着循环遍历所有行,而第二种情况将在创建行时进行处理,但是我看到它也更容易出现故障。
免责声明:我是一位自学成才的脚本编写者,因此对您来说显而易见的事情对我而言可能不是。不要害怕解释有关良好做法的基本知识,它只会帮助我变得更好!
答案 0 :(得分:2)
通常,最好只解析一次。读取大型文本文件并将其转换为真实数据可能会产生大量开销。如果您一遍又一遍地使用这些数据,则没有理由一遍又一遍地解析它。
对于您而言,几千行CSV的处理量不大。我会回应@AndrewMorton的评论...如果您正在做的事情能可靠地运行并且您理解它,那么可以坚持使用已经实现的方法。毕竟,工作软件是目标,很少有人会关心加载数据需要100毫秒(而不是25毫秒)。但是他们一定会在意复杂性是否会导致您的错误和头痛。