首页 > 解决方案 > 如何获取每个嵌套列表的第 3 个元素,但如果第 3 个不存在则放置 null?

问题描述

我的列表如下所示;

list = [['a', 'b', 'x'], ['a', 'd', 'r'], ['a', 'c']]

我想要做的是提取每个子列表的第三个元素,但在最后一个,因为只有 2 个输入“null”

这是我已经尝试过的。

try:
    lst1 = [item[2] for item in list]
except IndexError:
    lst1 = ['' for item in list]
print(lst1)

预期输出如下;

lst1 = ['x', 'r', '']

标签: pythonlist

解决方案


您可以使用简单的列表理解:

lst = [['a', 'b', 'x'], ['a', 'd', 'r'], ['a', 'c']]
res = [i[2] if len(i) > 2 else '' for i in lst]
print(res)    # ['x', 'r', '']

仅当子列表的长度超过 2 项时,该条件才i[2] if len(i) > 2 else ''确保第 3 项(Python 使用从零开始的索引)存在。i[2]len(i) > 2


推荐阅读