2011-11-18 10 views
6

Czy ktoś może mi powiedzieć, w jaki sposób można wywoływać indeksy na liście zagnieżdżonej?Listy zagnieżdżone python

Generalnie po prostu napisać:

for i in range (list) 

ale co jeśli mam listę zagnieżdżonych list jak ten jeden:

Nlist = [[2,2,2],[3,3,3],[4,4,4]...] 

i chcę przejść przez indeksy każdego separtly?

Dziękuję ...

+0

Musisz napisać swoje pytanie i wyjaśnić. Twoje użycie "indeksów" jest podejrzane; może miałeś na myśli "przedmioty"? – tzot

+0

To jest pytanie dotyczące chodzenia zagnieżdżonych list, [inne] (http://stackoverflow.com/questions/8184768/comparing-lists-python) dotyczy porównywania list zagnieżdżonych. – Kev

Odpowiedz

15

Jeśli naprawdę potrzebujesz indeksów można po prostu robić to, co znowu powiedział do listy wewnętrznej:

l = [[2,2,2],[3,3,3],[4,4,4] 
for i1 in xrange(len(l)): 
    for i2 in xrange(len(l[i1])): 
     print i1, i2, l[i1][i2] 

Ale to jest bardziej pythonic iterację samej listy :

for inner_l in l: 
    for item in inner_l: 
     print item 

Jeśli naprawdę potrzebujesz indeksów można również użyć enumerate:

for i1, inner_l in enumerate(l): 
    for i2, item in enumerate(inner_l): 
     print i1, i2, item, l[i1][i2] 
1

Możesz to zrobić. Dostosowania go do sytuacji:

for l in Nlist: 
     for item in l: 
     print item 
2

Spróbuj Setup:

a = [["a","b","c",],["d","e"],["f","g","h"]] 

aby wydrukować 2nd element w 1 liście ("B"), użyj print a[0][1] - Dla 2-ej w 3 listy ("g"): print a[2][1]

Pierwsze nawiasy odnoszą się do listy zagnieżdżonej, do której uzyskujesz dostęp, druga para odwołuje się do pozycji na tej liście.