检查列表是否在给定索引处具有值的最佳方法

时间:2014-06-02 03:28:12

标签: python

现在我喜欢这样,检查我的列表l是否有索引idx:

l = ['a', 'b', 'c', 'd']

idx = 5

try:
    value = l[idx]
except IndexError:
    value = None 

print(value) 
# gives None 

是否有一些功能:l.hasindex(idx)或其他什么?

2 个答案:

答案 0 :(得分:6)

您可以查看索引的绝对值是否小于长度。如果是,则列表具有索引。你需要针对负面指数的特殊情况。 -len(lst)有效......

def hasindex(lst, idx):
    ln = len(lst)
    return (abs(idx) < ln) or (idx == -ln)

答案 1 :(得分:0)

不,没有。您可以自己轻松编写:

get_value_at_index = lambda l, i:  l[idx] if idx < len(l) else None

value = get_value_at_index(l, idx)