0

有没有办法检查列表索引是否存在?

以外:

  1. 使用len(list)

  2. 使用

    try:
       ...
    except IndexError:
       ...
    

由于 dictdict.has_key(key)可以检查 key 是否存在,有什么方法可以检查 list 的索引吗?

4

2 回答 2

3

不,没有其他方法可以测试索引是否存在。

字典键不容易预测;您必须进行成员资格测试以确定密钥是否有效存在,因为扫描所有密钥效率低下。

列表不存在这个问题;len(somelist)很便宜(长度缓存在列表对象上),因此测试索引是否存在index < len(somelist)方法也是如此,如果您希望索引大部分时间都在列表边界内,则异常处理一个很好的回退。

于 2013-10-24T12:22:46.947 回答
0

您可以使用列表推导。

index in [someList.index(item) for item in someList]:

如果列表中至少有index项目,这将返回 true。

对于字典,你可以做类似的事情:

index in [someDictionary.keys().index(item) for item in someDictionary.keys()]

值得指出的是,这确实是一个有争议的问题,因为使用len(list)try ... except工作得很好。但是,嘿,你要求另一种方式,所以这是另一种方式。

于 2013-11-01T20:33:45.713 回答