有沒有解決方案來檢查列表的索引是否存在?檢查列表的索引是否存在
除了:
使用
try: ... except IndexError: ...
作爲字典具有dict.has_key(key)
檢查密鑰是否存在使用len(list)
,有檢查索引的任何方法列表?
有沒有解決方案來檢查列表的索引是否存在?檢查列表的索引是否存在
除了:
使用
try:
...
except IndexError:
...
作爲字典具有dict.has_key(key)
檢查密鑰是否存在使用len(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
作品非常清楚一個有爭議的問題。但是,嘿,你要求另一種方式,所以這是另一種方式。
您已經有了兩種方法。請注意'len(list)'很便宜。 –
注意:'dict.has_key()'已被棄用。使用'in'進行成員資格測試:'鍵入字典'。 –
@MartijnPieters可能值得注意的是,對於字典,'in'檢查鍵是否處於「in」,而對於列表則檢查值是否「in」。 –