我有一份清单清单。它包含大约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),我上面创建的那个小的是黑色文本,但我的大型列表是红色文本。我不知道这表明了什么。
答案 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])