ich den folgenden Code versuchenIndexerror: Listenzuordnung Index außerhalb des zulässigen Bereichs für nicht-leere Liste
def getCount(mySet):
l = len(mySet)
hsh={}
lSet=[]
rSet=[]
for i in range(0,l-1):
for j in range(i+1,l):
if ((mySet[i]+mySet[j])%k==0):
lSet = mySet
rSet = mySet
print "i, j ", i,j
del lSet[i]
del rSet[j]
if len(lSet)==0 or len(rSet==0):
return 0
left = getCount(lSet)
right = getCount(rSet)
if left==right:
return left
return len(lSet)
n,k = [int(i) for i in raw_input().split(" ")]
mySet=[]
for x in raw_input().split(" "):
mySet.append(int(x))
print getCount(mySet)
wo ein Beispiel Eingang
5 5
2 4 1 6 8
jedoch, erhalte ich den Fehler
del rSet[j]
IndexError: list assignment index out of range
Ich verstehe nicht, warum das ist. Wie ist j
außerhalb der Reichweite ?. In der Zeile oberhalb ausgedruckt, ich
i, j 0 4
zu umgehen, die Veränderlichkeit Ausgabe, können Sie auch 'verwenden deepcopy' aus der [Kopie] (https://docs.python.org/2/library/copy. html) Bibliothek zum Erstellen separater Sets – af3ld
Wahr, aber in diesem Fall nicht erforderlich, da die Liste nur ganze Zahlen enthält. – SuperSaiyan
Definitiv nicht erforderlich; nur eine weitere Option – af3ld