python - 避免在我的代码中使用多个(未嵌套的)if 语句

标签 python if-statement

我正在编写一个函数来扫描特定 map (二维数组)。为了避免扫描数组外的点,我写了一些 if 语句,但感觉是错误的、冗长的、低效的方法。

H为 map 的高度值,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

我怎样才能写得更好?

提前致谢:)

最佳答案

您可以不使用条件,而是使用 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)

实际上你可以让它更短:

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)

关于python - 避免在我的代码中使用多个(未嵌套的)if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54655227/

相关文章:

python - for 循环 & if 在字典中

mysql - 如何条件 SQL WHERE

android - 如何返回与 url django rest 中具有相同名字或姓氏的所有用户实例?

python - float 对象不是str错误的属性

vba扫描列如果为0则删除,如果不等于下一行则插入行

r - Dataframe:列,检查每行前一行的值并输入值

C# : Better way to code this?

python - `! source ll_env/bin/activate` 激活环境失败

python - 通过索引或坐标访问二维数组中的元素

python - 访问 bool numpy 矩阵的所有非对角线元素