我正在尝试通过仅在一个周期中转换2个非常相似的周期来改善某些代码。基本上,这些循环之间的唯一区别是参数被赋予函数的顺序。我的代码是这样的:
for i in range(x):
for j in range(y):
sample_func(i,j)
然后我做同样的事情,只是改变了函数参数的顺序:
for i in range(x):
for j in range(y):
sample_func(j,i)
有没有简单的方法可以将这个循环转换成一个函数,该函数接收一个参数,该参数说明在sample_func中输入的参数的顺序?希望我表示清楚,并先谢谢您!
编辑:
for i in range(dimensions[1]):
count_b = 0
count_w = 0
len_esp = len(esp(board)[0][i])
add_esp = 0
for esp in len_esp[i]:
add_esp += esp
for k in range(1, dimensions[1] + 1):
if board_value(board, create_coordinate(i+1, k)) == 2:
count_b += 1
elif board_value(board, create_coordinate(i+1, k)) == 1:
count_w += 1
else:
return False
if add_esp != count_b or count_2 < (len_esp - 1):
return False
for i in range(dimensions[1]):
count_b = 0
count_w = 0
len_esp = len(esp(board)[1][i])
add_esp = 0
for esp in len_esp[i]:
add_esp += esp
for k in range(1, dimensions[1] + 1):
if board_value(board, create_coordinate(k, i+1)) == 2:
count_b += 1
elif board_value(board, create_coordinate(k, i+1)) == 1:
count_w += 1
else:
return False
if add_esp != count_b or count_2 < (len_esp - 1):
return False
return True
包装,必要时可反向包装,然后展开。
for k in (1, -1):
sample_func(*(i, j)[::k])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句