为什么列表列表的行为不符合预期?

时间:2018-02-28 12:07:38

标签: python spyder

我有一份清单清单。它包含大约30k列表。我正在尝试访问每个子列表的第3个元素。

[subl[3] for subl in d]

我不断收到IndexError: list index out of range错误。

问题是,如果我手动创建列表,我的代码工作正常:

lst = [['https:', '', 'www.some site.zxy', 'val 4', 'val5 ', 'val 6'],
['https:', '', 'www.some site.zxy', 'val 4', 'val5 ', 'val 6']]

print([subl[3] for subl in lst])

我注意到如果我打印出列表(使用spyder),我上面创建的那个小的是黑色文本,但我的大型列表是红色文本。我不知道这表明了什么。

1 个答案:

答案 0 :(得分:1)

您可以检查您的列表是否具有所需的元素数量

<强>实施例

lst = [['https:', '', 'www.some site.zxy', 'val 4', 'val5 ', 'val 6'],
['https:', '', 'www.some site.zxy', 'val 4', 'val5 ', 'val 6']]

print([subl[3] for subl in lst if len(subl) > 3])