Я работаю в блокноте Jupyter и занимаюсь веб-скребком. Я написал:

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

Я просто хочу получить доступ ко второму элементу. Почему это ошибка «индекс списка вне диапазона»? Я не мог найти вопрос, похожий на мой.

0
NimbleTortoise 23 Сен 2018 в 13:51

2 ответа

Лучший ответ

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 при вставке списка в пустой создает одноэлементный список, единственным элементом которого является другой список. Расширение списка добавляет каждый элемент в пустой список, что делает список многоэлементным.

0
N Chauhan 23 Сен 2018 в 10:57

Потому что нужно 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']]

То, что содержит один элемент

0
U10-Forward 23 Сен 2018 в 10:53