检查列表索引是否存在

时间:2013-10-24 12:18:08

标签: python list python-2.7

有没有解决方案来检查列表的索引是否存在?

除了:

  1. 使用len(list)

  2. 使用

    try:
       ...
    except IndexError:
       ...
    
  3. 由于dict有dict.has_key(key)来检查密钥是否存在,是否有任何方法可以检查列表的索引?

2 个答案:

答案 0 :(得分:3)

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

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

列表不会遇到这个问题; len(somelist)很便宜(长度缓存在列表对象上),因此index < len(somelist) 测试索引是否存在的方法,如果你期望的话,异常处理会有很大的后备索引大部分时间都在列表边界内。

答案 1 :(得分: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非常有效。但是,嘿,你问了另一种方式,所以这是另一种方式。