看似简单的列表索引超出范围错误

时间:2018-09-23 10:51:31

标签: python arrays list

我正在使用Jupyter笔记本电脑,并且正在练习网页抓取。我写道:

rows = [] 
rows.append(['Rank', 'Company Name', 'Webpage', 'Description',
        'Location', 'Year end', 'Annual sales rise over 3 years',
        'Sales f000s', 'Staff', 'Comments'])
rows[1]

我只想访问第二个元素。为什么这是一个错误“列表索引超出范围”?我找不到类似于我的问题。

2 个答案:

答案 0 :(得分:0)

因为需要extend

rows = [] 
rows.extend(['Rank', 'Company Name', 'Webpage', 'Description',
        'Location', 'Year end', 'Annual sales rise over 3 years',
        'Sales f000s', 'Staff', 'Comments'])
rows[1]

它不起作用,因为您没有合并,而是将列表追加到另一个列表中

所以它将是:

[['Rank', 'Company Name', 'Webpage', 'Description',
        'Location', 'Year end', 'Annual sales rise over 3 years',
        'Sales f000s', 'Staff', 'Comments']]

其中包含一个元素

答案 1 :(得分:0)

list.append一个项目添加到列表中。 list.extend 将基本列表与目标连接在一起。考虑一下:

>>> x = [1, 2]
>>> y = [1, 2]

>>> x.append([3,4])
>>> x
[1, 2, [3, 4]]

>>> y.extend([3, 4])
>>> y
[1, 2, 3, 4]

您要寻找的是list.extend,因为append将列表变成空白会创建一个单元素列表,其唯一元素是另一个列表。扩展列表会将每个项目添加到空列表,从而使列表成为多元素列表。