2016-05-26 13 views
-1

verschachtelt in kann ich es in einem anderen Beispiel setzen:Python Index für Schleife

q=[[100,101,103,104],[201,202,204],[301,302,304],[401,402,403]] 

for index, item in enumerate(q): 
     for i,t in enumerate(q[index]): 
      if q[index][i+1]-q[index][i]==2: 
      print index, i, q[index][i] 

die zurück

0 1 101 

es

0 1 101 
1 1 202 
2 1 302 

es scheint, die break-Anweisung Pause zurückkehren soll die Schleife, so dass es bei der ersten Liste stoppt.

wenn ich es ändern, indem

for index, item in enumerate(q): 
     try: 
      for i range(len(q[index]-1)): 
       if q[index][i+1]-q[index][i]==2: 
        print index, i, q[index][i] 
     except IndexError: 
       break 

Natürlich ist es gut, aber ich will noch wissen, ob es einen Weg gibt, die nicht den Index zu reduzieren zu haben, als das letzte Element als auch wertvoll ist.

+0

Haben Sie den Inhalt in der p-Liste wie a, b ausdrucken möchten, c, usw.? – noteness

+0

Der ursprüngliche Index ist noch verfügbar, er wird nur mehrmals gedruckt, weil Sie dies innerhalb einer Schleife tun. Die Gegenstände in "p" sind ebenfalls leicht verfügbar, sie werden buchstäblich "Gegenstand" genannt. Worüber bist du verwirrt? –

Antwort

1

Um durch die Liste der Liste iterieren Sie diesen Code verwenden können:

p=[['a','b','c','d'], 
    ['a','c','e','d'], 
    ['a','b','z','x']] 

for i,item in enumerate(p): 
    for j,x in enumerate(item): 
     print i,j,x 

Ausgang:

0 0 a 
0 1 b 
0 2 c 
0 3 d 
1 0 a 
1 1 c 
1 2 e 
1 3 d 
2 0 a 
2 1 b 
2 2 z 
2 3 x 
1
for index,item in enumerate(p): 
    print 'top', index  #The index is at this level 
    for x in range(len(item)): 
     print 'loop' ,index # Not this level where you print it.