检查和访问数组元素没有错误

Nil*_*esh 1 python if-statement exception

我有一个数组,我想验证该数组的第二项。我想到了两种方法

  1. 检查array长度

    if len(array) > 1:
        # Process for array[1]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 块中捕获IndexError并处理else

    try:
        array[1]
    except IndexError:
        pass
    else:
        # Process for array[1]
    
    Run Code Online (Sandbox Code Playgroud)

哪一个更好?

如果您还有其他选择,我准备学习:)

Del*_*gan 5

Python 鼓励EAFP 编码风格

EAFP
请求原谅比请求许可更容易。这种常见的 Python 编码风格假设存在有效的键或属性,并在假设证明错误时捕获异常。这种干净、快速的风格的特点是存在许多tryexcept 语句。该技术与许多其他语言(例如 C)常见的LBYL风格形成对比。

这意味着try/except完全没问题,但您不必使用该else子句,只需执行以下操作:

try:
    # Process for array[1]
except IndexError:
    pass
Run Code Online (Sandbox Code Playgroud)