如何检查 Python 列表中是否存在第 n 个元素?

14

我在Python中有一个列表

x = ['a','b','c']

有3个元素。我想要检查是否存在第4个元素,而不会收到错误消息。

我该如何做到这一点?

2个回答

28

您检查长度:

len(x) >= 4

或者你捕获IndexError异常:

try:
    value = x[3]
except IndexError:
    value = None  # no 4th index

你使用的方式取决于第四个值出现的频率。如果通常有第四个值,使用异常处理器(宁愿请求原谅);如果大多数情况下没有第四个值,请检查长度(三思而后行)。


4
好的,你向一个新用户展示了LBYL和EAFP两种编程模式。(@A_B,请谷歌它们) - forivall
如果你测试的数字是一个已知的固定值,那就没问题了。但如果它是一个整数变量,你可能不想接受负值作为有效值,尽管它们可以成功地索引到列表中。 - Simon Hibbs
@SimonHibbs 或者先将值进行规范化(将负索引加上 len(x),即 normalised = len(x) + idx if idx < 0 else idx),然后检查 0 <= normalised < len(x) 是否成立。 - Martijn Pieters

4

您想检查列表是否有4个或更多元素吗?

len(x) >= 4

你想要检查一个序列中的第四个元素是否在列表中吗?
'd' in x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接