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

问题描述 投票:-3回答:1

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

python spyder
1个回答
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])
© www.soinside.com 2019 - 2024. All rights reserved.