好像
if not mylist[1]:
return False
不起作用
您只需要检查所需的索引是否0
在列表的范围内和列表的长度内,就像这样
if 0 <= index < len(list):
它实际上在内部被评估为
if (0 <= index) and (index < len(list)):
因此,该条件检查索引是否在[0,列表长度]范围内。
注意: Python支持否定索引。引用Python 文档,
如果
i
或j
为负,则索引相对于字符串的结尾:len(s) + i
或被len(s) + j
替换。但是请注意-0仍为0。
这意味着,每当您使用负索引时,该值都会添加到列表的长度中,并且将使用结果。因此,list[-1]
将为您提供元素list[-1 + len(list)]
。
因此,如果要允许使用负索引,则只需检查索引是否不超过列表的长度即可,如下所示
if index < len(list):
另一种执行此操作的方法是,除了IndexError
,像这样
a = []
try:
a[0]
except IndexError:
return False
return True
当您尝试以无效索引访问元素时,将IndexError
引发。因此,此方法有效。
注意:您在问题中提到的方法有问题。
if not mylist[1]:
可以说1
是的有效索引mylist
,如果它返回Falsy值。然后not
将其否定,以便将if
条件评估为“真”。因此,False
即使元素确实存在于列表中,它也会返回。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句