2017-12-31 140 views
-5

Ich habe eine Liste, die Unterlisten enthält, die jeweils eine der Unterlisten enthält zwei Strings:Iterieren/Überprüfung Unterlisten in Python

cor = [['s', 'urmange'], ['su', 'rmange'], ['sur', 'mange'], ['surm', 'ange'], ['surma', 'nge'], ['surman', 'ge'], ['surmang', 'e']] 

Jetzt habe ich jeweils zwei Elemente der Unter überprüfen möchten -Listen, wenn es in einem Wörterbuch namens dic vorhanden ist, wenn die beiden Elemente vorhanden if subL[1] in Dic and subL[2] in Dic: ich werde eine Ausgabe wie haben:

sur mange 

Ansonsten print("No match with dic")

Wie kann ich tun th ist mit Python? Diese

ist, was ich tun ist:

for sub_list in cor: 
    for i in range (0,len(sub_list)): 
     if sub_list[i] in my_list and sub_list[i+1] in my_list: 
      print ("R3: You mean:", sub_list) 

ich die nächste Ausgabe:

R3: You mean: ['sur', 'mange'] 

Mit diesem Fehler:

Traceback (most recent call last): 
    File "<pyshell#88>", line 3, in <module> 
    if sub_list[i] in my_list and sub_list[i+1] in my_list: 
IndexError: list index out of range 

Ich dachte, etwas falsch mache!

+0

Auch Python-Indexierung ist Null basiert. –

+0

existieren in dict als "Schlüssel", "Wert" oder "Schlüssel-Wert" -Paar? –

+0

Oh, ich habe nur vergessen hinzuzufügen, was ich getan habe, Dies ist harte Gedanken, !! Ich werde den Beitrag bearbeiten – Ran

Antwort

0

Das Problem mit Ihrem Code ist, dass Ihre range Funktion Werte von i von "0" auf "len (sub_list) -1" zurückgibt. Aber innerhalb Ihrer for Schleife versuchen Sie, auf das "i + 1" -te Element von sub_list zuzugreifen. Wenn also der Wert von "i" len(sub_list) - 1 ist, wird "i + 1" zu "len (sub_list)", was nicht der gültige Index für Ihre Unterliste ist (gültiger Index für eine Liste ist immer im Bereich 0 bis len (Liste) - 1).

Wenn Sie also die Endbindung Ihrer Bereichsfunktion ändern, funktioniert Ihr Code einwandfrei. d. h. Sie müssen Folgendes verwenden:

for i in range (0,len(sub_list)-1): 
#        ^subtracting one to make it fall in valid range 
Verwandte Themen