2017-10-31 3 views
0

Ich brauche etwas Hilfe mit meinem Code. Ich möchte überprüfen, ob der Wert für self.channels_index nicht größer oder gleich self.channel ist, damit ich das Element aus der Liste abrufen kann. Wenn der Wert größer als self.channel ist, dann tue nichts.Wie überprüft man den Indexwert aus der Liste in Python

Wenn ich versuche dies:

self.channels_Index += 1 

for index in enumerate(self.channel): 
    if index > self.channels_Index: 
     new_channel = self.channel[self.channels_Index] 

ich einen Fehler: Indexerror: Listenindex außerhalb des zulässigen Bereichs.

Der Fehler sind Highlight auf dieser Linie:

new_channel = self.channel[self.channels_Index] 

Es aus der Liste kein Wert nach dem letzten Element ist. Hier

ist die self.channel Liste:

['101 BBC One S East', '102 BBC Two', '103 ITV', '104 Channel 4', '105 Channel 5', '106 Sky One', '107 Sky Living', '108 Sky Atlantic', '401 Sky Sports 1 UK', '402 SKY Sports 2 UK', '403 Sky Sports 3 UK', '404 Sky Sports 4 UK', '405 Sky Sports 5 UK', '406 Sky Sports News HQ', '407 Sky Sports F1', '408 Sky Sports 1 HD', '409 Sky Sports 2 HD', '410 Sky Sports 3 HD', '411 Sky Sports 4 HD', '412 Sky Sports 5 HD', '413 Eurosport 1 UK', '414 Eurosport 2 UK', '415 BT Sport 1', '416 BT Sport 2', '417 At the Races', '418 BT Sport ESPN', '419 MUTV', '420 Chelsea TV', '421 Eir Sport 1', '422 Eir Sport 2'] 

Was erwarte ich zu erreichen, wird ich die self.channels_index bin mit dem Wert hinzufügen und überprüfen Sie mit dem self.channel Wert, so kann ich das Element holen den Wert mit bis ich kann das letzte Element aus der Liste erhalten, die es 422 Eir Sport 2 ist

können Sie mir bitte ein Beispiel zeigen, wie ich self.channels_index zu überprüfen, mit dem self.channel Wert verwenden kann, das zu sehen, wenn der Wert gleich oder nicht größer ist als der letzte Wert so Ich kann holen die Elemente, bis ich das letzte Element aus der Liste bekommen kann?

+0

Drucken Sie 'index' - es ist nicht das, was Sie denken, es ist! – alfasin

+0

"Ich erwarte, dass ich den self.channels_index benutze, um den Wert hinzuzufügen und mit dem self.channel Wert zu überprüfen, damit ich das Element mit dem Wert abrufen kann, bis ich das letzte Element aus der Liste bekommen kann 422 Eir Sport 2 "- das ist nicht klar! – alfasin

+0

was bekommst du nicht? –

Antwort

1

enumerate() gibt eine Liste der Indizes und Werte zurück. Beachten Sie:

>>> L = ['hi', 'hello', 'hey'] 
>>> list(enumerate(L)) 
[(0, 'hi'), (1, 'hello'), (2, 'hey')] 

Sie benötigen, um Ihren Code zu ändern, um dies widerzuspiegeln durch for-Schleife in Ihre beiden Variablen mit:

for index, val in enumerate(self.channel): 
    if index > self.channels_Index: 
     new_channel = val 
+0

vielen Dank dafür, aber ich möchte das Element aus der Liste mit dem Wert holen. Beispiel: Wenn ich den Wert "10" habe, möchte ich '402 SKY Sports 2 UK' aus der Liste holen. Also wenn ich den Wert '30' habe, dann möchte ich '422 Eir Sport 2' holen. Wenn ich den Wert "31" oder was auch immer größer ist als dann möchte ich nichts tun. Der Code, den du postest, holt das letzte Element aus der Liste, das falsch ist! –

+0

Was ich erreichen möchte, ist, ich möchte die Elemente aus der Liste mit dem Wert wie "108 Sky Atlantic", "401 Sky Sports 1 UK", "402 SKY Sports 2 UK" holen und so weiter, bis wann ich habe der Wert 30, um '422 Eir Sport 2' zu erhalten. Ich hoffe, das ist klar? –

Verwandte Themen