在 Python 3 中,如果您具有越界索引元素,将如何返回一些默认值?这与此处的其他线程类似,但是我的情况很特殊。我想生成一个在每个元素上具有此属性的列表元素的列表。
我这样尝试过(这是我的代码的概括):
list2 = [list1[0][0] or None,
list1[0][1] or None,
list1[1][0] or None,
list1[1][1] or None]
[注意:我的索引不一定具有上述模式]
我并不是真的希望它能奏效,也没有。我得到一个IndexError: List index out of range
我认为try / except可能会起作用,但这仅在整个list2
提示IndexError时才捕获,而不是list1
的每个单独元素时才捕获。
我的上一次尝试是同时做这两项,并创建一个函数来尝试使用try / except来分别对list1
进行调用:
def checker(element):
try:
return element
except IndexError:
return None
list2 = [checker(list1[0][0]),
checker(list1[0][1]),
checker(list1[1][0]),
checker(list1[1][1])]
但是,我仍然收到IndexError。
是否有实现此目的的好方法?我在概念上缺少什么吗?