我有一个来自字典的类型(示例)
l =('1037_97',["a","b","c","d","e"])
我想保存一个文件(las 格式)但是Liblas只能写单点。
for l in Groups.iteritems():
for p in xrange(len(l[1])):
file_out.write(l[1][p])
我正尝试使用如果可能 List Comprehensions 以节省代码并加速循环
最佳答案
循环理解不一定会加速循环。如果最终结果应该是一个列表,它们只会加速循环。列表理解比创建一个空列表并一个一个地附加到它更快。
在您的情况下,您希望将项目写入文件,而不是创建新列表。然后浪费了列表创建成本。
尽管您不需要 xrange()
调用,只需遍历 l[1]
。您也不需要 .iteritems()
,因为您忽略了键。使用 .itervalues()
代替:
for lst in Groups.itervalues():
for p in lst:
file_out.write(p)
我使用lst
作为循环变量; l
在许多字体中很容易与 i
混淆。
关于Python:使用 List Comprehensions 而不是循环以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815256/