我有一个python2.7应用程序,偶尔会被打断。在
我正在处理一个非常大的数据文件。为了处理内存限制,我将数据文件分成由x和y组件标识的网格。每个网格都是独立处理的。在
它需要很长的时间来处理,所以偶尔,我需要在某个点停止处理。理想情况下,我希望更新y逯start和x_start,并在我离开的地方恢复应用程序(不处理已经处理的网格)。在
主操作发生在嵌套的for循环中:
x_start=0.0
x_step=0.05
x_size=10.0
y_start=0.0
y_step=0.05
y_size=10.0
x_ranges = zip(np.arange(x_start,x_size,x_step), np.arange(x_step+x_start,x_size+x_step,x_step))
y_ranges = zip(np.arange(0.0,y_size,y_step), np.arange(y_step,y_size+y_step,y_step))
for x_min,x_max in x_ranges:
for y_min,y_max in y_ranges:
doAction()
在上面的代码中,我处理了x\u start。仅当x_min=x_start时才应使用y_start。对于x的所有其他值,它应该从0.0开始。在
这是我提出的解决方案。有没有更好、更像Python的方法:
^{pr2}$
我不确定是否有更像Python的方式,但你可以这样重写(用任何语言都可以):
至少内部循环只写一次。在
或者你可以使用三元,但是我的错误是更容易阅读,而不是更小的代码。但为了完整起见,你可以这样写:
^{pr2}$你可以试试列表理解:
或者可以使用lambda函数来简化条件
^{pr2}$另一个带有lambda函数的选项(为了提高可读性)
相关问题 更多 >
编程相关推荐