我想了解什么是最有效的方式来限制我的循环范围。这里的想法是我的j被输入到一个需要事先确定的函数中。使循环范围有条件的最佳方法?
我正在处理的问题的一个约束是j必须总是小于i。
max_value = None
for i in range(1,1499):
for j in range(1,1499):
if i > j:
candidate = some_function(i,j)
if candidate > max_value:
max_value = candidate
现在我的i> j声明在这里没有必要,因为最好的解决方案总是会在i> j的地方。但是,因为我知道这一点,所以我想利用这个来限制我的范围,并停止计算更多的循环。
什么是最好的方式去做这件事?我在想这件事可能会起作用:
max_value = None
for i in range(1,1499):
for j in range(1,i):
candidate = some_function(i,j)
if candidate > max_value:
max_value = candidate
还有其他想法或建议吗?实际的循环问题比这个要大得多,所以速度是一个考虑因素,任何建议都是值得欢迎的!
“可能工作”?你试过了吗? – BartoszKP 2014-10-28 23:33:43
修复缩进后,它将起作用(在“if”行末尾没有冒号,下一行应该缩进)。另外,如果你使用Python <3,使用'xrange()'也应该加速。 – 2014-10-28 23:35:46
除了上面所有相关的评论外,请尝试。 'timeit'应该这样做。 https://docs.python.org/2/library/timeit.html – 2014-10-28 23:38:48