我想从列表中提取一个项目,如果找不到返回默认值(而不是通常的索引异常)。非常类似于字典上的get(key,default)。在仔细阅读了这些文档之后,我觉得我仍然忽略了一个简单的内置python解决方案。在
以下是我能想到的最快速度:
def pluck(list_items, index, default=None):
return dict(zip(range(len(list_items)), list_items)).get(index, default)
s = [1, 2,]
pluck(s, 3, None)
谢谢!在
如果只使用正索引,则要保持快速和简单:
否则:
^{pr2}$如果例外是常规:
两者都适用于负指数。在
像这样,它也适用于负指数。在
根据您希望尝试访问数组边界之外的频率,您要么捕获异常(如果预期失败很少),要么测试索引是否有效,否则返回默认值。在
如果预计故障很少发生,这可能是最快的解决方案:
如果预计它们会频繁出现,最好检查索引是否有效:
^{pr2}$请注意,如果
abs(index) <= len(items)
,即items[-1]
等同于items[len(items)-1]
,那么使用负索引是有效的。在相关问题 更多 >
编程相关推荐