Индекс списка вне ошибки должен иметь указатель индекса - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть nested_list, который выглядит как

[
    ['"1"', '"Casey"', '176544.328149', '0.584286566204162', '0.415713433795838', '0.168573132408324'], 
    ['"2"', '"Riley"', '154860.665173', '0.507639071226889', '0.492360928773111', '0.0152781424537786'], 
    ['"3"', '"Jessie"', '136381.830656', '0.47783426831522', '0.52216573168478', '0.04433146336956'], 
    ['"4"', '"Jackie"', '132928.78874', '0.421132601798505', '0.578867398201495', '0.15773479640299'], 
    ['"5"', '"Avery"', '121797.419516', '0.335213073103216', '0.664786926896784', '0.329573853793568']
 ]

(Мой настоящий nested_list - очень длинный список).И я попытался извлечь 2 данных из каждого подсписка, и вот что я сделал

numerical_list = []
child_list = []
for l in nested_list: 
    child_list.append(l[1])
    child_list.append(float(l[2]))
    numerical_list.append(child_list)
print(numerical_list)

Это дало мне ошибку list index out of range в строке child_list.append(l[1]).Однако, если я изменю значение for l in nested_list: на for l in nested_list[:4]: или любой диапазон, который находится в пределах длины nested_list, он будет работать правильно.Это не имеет никакого смысла для меня.Может ли кто-нибудь помочь мне найти неправильное?Спасибо ~

1 Ответ

0 голосов
/ 18 декабря 2018

Если вас просто интересуют первые два элемента, один из способов - использовать try... except, другой прямой способ - проверить длину списка следующим образом.

Таким образом, вы только добавляете списки, в которых существуют 1-й и 2-й элементы.

numerical_list = []
child_list = []
for l in nested_list: 
    if len(l>=3):
        child_list.append(l[1])
        child_list.append(float(l[2]))
        numerical_list.append(child_list)
print(numerical_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...