有没有解决方案来检查列表的索引是否存在?
除了:
使用len(list)
使用
try:
...
except IndexError:
...
由于dict有dict.has_key(key)
来检查密钥是否存在,是否有任何方法可以检查列表的索引?
答案 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
非常有效。但是,嘿,你问了另一种方式,所以这是另一种方式。