我有一个 Python (3.2) 脚本,可以搜索具有我想要的属性的点。但它有一个丑陋的部分:
for x in range(0,p):
for y in range(0,p):
for z in range(0,p):
for s in range(0,p):
for t in range(0,p):
for w in range(0,p):
for u in range(0,p):
if isagoodpoint(x,y,z,s,t,w,u,p):
print(x,y,z,s,t,w,u)
else:
pass
我能做些什么让它看起来好一点吗?
您可以使用迭代工具简化您的代码:
from itertools import product
def print_good_points(p, dimensions=7):
for coords in product(range(p), repeat=dimensions):
args = coords + (p,)
if isagoodpoint(*args):
print(*coords)
如前所述,这解决了您的问题;但是,我不确定您是否真的想包括p
在论据中isagoodpoint()
。如果没有,您可能会丢失添加它的行:
from itertools import product
def print_good_points(p, dimensions=7):
for coords in product(range(p), repeat=dimensions):
if isagoodpoint(*coords):
print(*coords)
代码中的行
else:
pass
顺便说一句,什么也不做。还,range(0, p)
相当于range(p)
.
而且......以防万一这种使用*
in 函数调用对你来说并不熟悉:
http://docs.python.org/3.2/reference/expressions.html#index-34
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)