2017-04-25 5 views
1

Ich lese in Python ein Matlab mat Datei, die drei Arrays enthält: tom, dick and harry. In Python verwende ich eine for Schleife, die Operationen auf dieser Array-Liste ausführt. Im Anschluss an die Demo-Code:Zugriff auf bestimmte Variable in Python-Liste

import scipy.io as sio 
mat_contents = sio.loadmat('names.mat') # with arrays tom, dick and harry 
varlist = ['tom', 'dick', 'harry'] 
for w in varlist: 
    cl = mat_contents[w] 
    # some more operations in the loop 

Nun, da ich zu debuggen haben und wollen nicht alle varlist für die for Schleife die drei zuzugreifen. Wie führe ich die for-Schleife nur für harry aus? Ich weiß varlist[2] bekommt mich harry, aber ich konnte es nicht schaffen, es allein für die for Schleife zu bekommen.

+0

Sie bedeuten 'varlist [2: 3]'? – ewcz

+3

put 'if w ==" harry ": Operationen ausführen ...' innen for loop. Bitte geben Sie die Eingabe und die gewünschte Ausgabe an, wenn es nicht hilft, es wird helfen, die Frage besser zu verstehen. – JkShaw

+0

@jyotish: Danke. Ich könnte das 'for' und' if' mit den [generator expressions] kombinieren (http://stackoverflow.com/a/6981771/1977614) und es zum Laufen bringen. Ich fühle, dass dies immer noch ein Weg ist. Ich hoffe, dass jemand eine direkte Antwort auf die Frage geben würde. –

Antwort

1

Als Antwort auf Ihren Kommentar: jetzt steuerbar mit einer einzelnen Variablen:

import scipy.io as sio 
mat_contents = sio.loadmat('names.mat') # with arrays tom, dick and harry 
varlist = ['tom', 'dick', 'harry'] 

# set it to -1 to disable it and use all arrays 
debug_index = -1 

# or set it to an index to only use that array 
debug_index = 1 

for w in [varlist[debug_index]] if debug_index + 1 else varlist: 
    cl = mat_contents[w] 
    # some more operations in the loop 
+0

Dies dient dem Zweck. Aber ich suche nicht danach. Sagen wir, ich möchte für 'tom' debuggen. Kann es so einfach gemacht werden, wie den Index zu ändern und nicht die Namen für jeden einzugeben? –

+0

Sicher, siehe Update oben. –

Verwandte Themen