我有一份清单清单。它包含大约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),我上面创建的小文件是黑色文本,但我的大型列表是红色文本。我不知道这表明了什么。
您可以检查列表是否包含所需数量的元素
例如:
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])