有没有办法检查列表索引是否存在?
以外:
使用
len(list)
使用
try: ... except IndexError: ...
由于 dictdict.has_key(key)
可以检查 key 是否存在,有什么方法可以检查 list 的索引吗?
有没有办法检查列表索引是否存在?
以外:
使用len(list)
使用
try:
...
except IndexError:
...
由于 dictdict.has_key(key)
可以检查 key 是否存在,有什么方法可以检查 list 的索引吗?
不,没有其他方法可以测试索引是否存在。
字典键不容易预测;您必须进行成员资格测试以确定密钥是否有效存在,因为扫描所有密钥效率低下。
列表不存在这个问题;len(somelist)
很便宜(长度缓存在列表对象上),因此测试索引是否存在的index < len(somelist)
方法也是如此,如果您希望索引大部分时间都在列表边界内,则异常处理一个很好的回退。
您可以使用列表推导。
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
工作得很好。但是,嘿,你要求另一种方式,所以这是另一种方式。