Hil*_*ani 3 python if-statement
我正在编写一个函数来扫描特定的地图(2D数组).为了避免在阵列外部扫描斑点,我写了一些if语句,但感觉这是错误的,长期的,低效的方式.
H是地图的高度值,int W表示宽度,int c是当前点,包含x和y值的元组.
floorH = c[0]-D
floorW = c[1]-D
ceilingH = c[0]+D+1
ceilingW = c[1]+D+1
if floorH < 0:
floorH = 0
if floorW < 0:
floorW = 0
if ceilingH > H:
ceilingH = H
if ceilingW > W:
ceilingW = W
Run Code Online (Sandbox Code Playgroud)
我怎么能写得更好?
提前致谢 :)
您可以使用max和min函数,而不是使用条件.
floorH = c[0]-D
floorW = c[1]-D
ceilingH = c[0]+D+1
ceilingW = c[1]+D+1
floorH = max(floorH, 0)
floorW = max(floorW, 0)
ceilingH = min(ceilingH , H)
ceilingW = min(ceilingW , W)
Run Code Online (Sandbox Code Playgroud)
实际上你可以做得更短:
floorH = max(c[0]-D, 0)
floorW = max(c[1]-D, 0)
ceilingH = min(c[0]+D+1, H)
ceilingW = min(c[1]+D+1, W)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |