如何获取python列表的第n个元素,如果不可用,则获取默认值

2024-03-28 10:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中寻找列表的dictionary.get(key, default)等价物。是否有一个行程序习惯用法来获取列表的第n个元素,或者如果不可用,则有一个默认值?

例如,给定一个列表myList,我想得到myList[0],如果myList是空列表,我想得到5。

谢谢。


Tags: key程序default元素列表getdictionary习惯用法
3条回答
l[index] if index < len(l) else default

为了支持负指数,我们可以使用:

l[index] if -len(l) <= index < len(l) else default
try:
   a = b[n]
except IndexError:
   a = default

编辑:我删除了TypeError的检查-最好让调用者处理这个问题。

(a[n:]+[default])[0]

a变大时,这可能更好

(a[n:n+1]+[default])[0]

这是因为如果a[n:]是空列表,如果n => len(a)

下面是一个如何与range(5)一起工作的示例

>>> range(5)[3:4]
[3]
>>> range(5)[4:5]
[4]
>>> range(5)[5:6]
[]
>>> range(5)[6:7]
[]

以及完整的表达

>>> (range(5)[3:4]+[999])[0]
3
>>> (range(5)[4:5]+[999])[0]
4
>>> (range(5)[5:6]+[999])[0]
999
>>> (range(5)[6:7]+[999])[0]
999

相关问题 更多 >