Indeks lista z błędem zakres musi mieć wskazanie indeksu

głosy
1

Mam nested_listto wygląda

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

(Moje prawdziwe nested_listjest to bardzo długa lista). A ja starałem się wyodrębnić 2 dane z poszczególnych podmenu i oto co zrobiłem

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)

To dało mi list index out of rangebłąd na linii child_list.append(l[1]). Jednakże, jeśli zmieni for l in nested_list:się for l in nested_list[:4]:lub dowolny zakres, który jest w długości nested_list, to działało poprawnie. To nie ma żadnego sensu dla mnie. Może ktoś mi pomóc na znalezienie gdzie jest źle? Dziękuję ~

Utwórz 18/12/2018 o 11:05
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Jeśli jesteś zainteresowany tylko w pierwszych dwóch elementów, jednym ze sposobów jest wykorzystanie try... except, inny bezpośredni sposób to sprawdzić na długość listy w następujący sposób.

W ten sposób można tylko dołączyć list, gdzie 1 i 2. Element istnieją.

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)
Odpowiedział 18/12/2018 o 11:34
źródło użytkownik

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