gpt4 book ai didi

python - python是否有类似于字典的内置列表get()?

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:16 24 4
gpt4 key购买 nike

我想从列表中提取一个项目,如果没有找到则返回一个默认值(而不是通常的索引异常)。与字典上的 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)

谢谢!

最佳答案

根据您希望尝试访问数组边界之外的频率,您应该捕获异常(如果预计失败很少见),或者测试索引是否有效,否则返回默认值.

如果预期故障很少见,这可能是最快的解决方案:

def pluck(items, index, defval):
try:
return items[index]
except IndexError:
return defval

如果预计它们会频繁出现,最好检查索引是否有效:

def pluck(items, index, defval):
return items[index] if -len(items) <= index < len(items) else defval

请注意,如果 abs(index) <= len(items),则使用负索引是有效的, IE。 items[-1]相当于items[len(items)-1] .

关于python - python是否有类似于字典的内置列表get()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com