如何用更有效的列表理解或类似的方法替换下面的for
循环?Numpy
和Pandas
不是选项,因为它们没有安装在客户机系统上,但是itertools
可能有用吗?你知道吗
n_day_cells = 24*60/240
week_matrix = list()
for i in range(7):
for j in range(n_day_cells):
week_matrix.append([i,j,0])
编辑:对不起,我应该说得更具体一点。我使用的是python2.7,除了诸如itertools
之类的“核心”包之外,没有其他包。这段代码需要在我的脚本中运行~1M-1B次。你知道吗
使用
map
构建列表。你知道吗或者使用
itertools
的一种方式。你知道吗当需要值时,将消耗时间。不会消耗明显的内存。你知道吗
您可以使用以下方法执行此操作:
如果您的范围更大并且您使用的是Python2,那么您可能需要使用
xrange
而不是range
来获取迭代器。你知道吗如果您真的想节省更多时间,请使用xrange,并创建一个元组列表,而不是列表列表列表(Python2中的所有示例):
上面最后一个应该是最快的替代方案,即使您想将其用作发电机:
map提供的另一个答案虽然有趣,但由于重复调用
lambda
和map
,因此开销会更大:相关问题 更多 >
编程相关推荐