Skip to main content
 首页 » 编程设计

用于检查(负)数组索引有效性的 Pythonic 习惯用法

2025年05月04日12haluo1

我的函数将字符串拆分为多行,检查第 index 行,并返回两个值之一。这是一个简化版本:

def f(text, index): 
   rows = text.split('\n') 
   row = rows[index] # <-- IndexError thrown here. 
   if row_meets_some_condition: 
      return "Yes" 
   else: 
      return "No" 

调用者有时会为 index 传递一个负值(当他想使用基于文件结尾的索引时),这工作正常,除非 text haw行太少,在这种情况下,我在 row = rows[index] 行得到一个 IndexError。

除了捕获错误之外,是否有惯用的方法来检查 index 是否是 rows 的合法索引?

请您参考如下方法:

捕获 IndexError 在 Python 中非常惯用。如果您无法预见您的输入有多少行,您可以在访问列表之前检查 rows 的长度,或者只捕获 IndexError。那么我会选择第二个选项。