Indice de liste hors erreur de plage doit avoir une indication d'index

voix
1

J'ai un nested_listqui ressemble à

[
    ['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']
 ]

(Mon vrai nested_listest une très longue liste). Et j'ai essayé d'extraire 2 données de chaque sous - liste et voici ce que je faisais

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)

Cela m'a donné une list index out of rangeerreur sur la ligne de child_list.append(l[1]). Cependant, si je change que for l in nested_list:pour for l in nested_list[:4]:ou toute plage qui se trouve dans la longueur nested_list, il a fonctionné correctement. Cela ne fait pas de sens pour moi. Quelqu'un pourrait -il me aider à trouver où est le problème? Merci ~

Créé 18/12/2018 à 11:05
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Si vous êtes simplement intéressé par les deux premiers éléments, une façon est d'utiliser try... except, autre manière directe est de vérifier la longueur de la liste comme suit.

De cette façon, vous ajoutez que les listes où le 1er et le 2ème élément existant.

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)
Créé 18/12/2018 à 11:34
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more