scheint, dass Sie etwas zu B [0] anhängen vergessen, starten Sie die Liste anhängen 1 und 2. Hier zu positionieren ist, was Sie
>>> A = [(1,2,1),(2,3,1),(1,4,2),(2,2,2),(1,4,3),(3,2,1)]
>>> B = [[] for _ in range(5)]
>>>
>>> n = len(A[0]) - 1
>>>
>>> for j in (n,0,-1):
... print("j:%d" % j)
... while(len(A) != 0):
... a = A.pop(0)
... print("appending %s at position %s" % (str(a), str(a[j])))
... B[a[j]].append(a)
... print("B:" + str(B))
... for l in range(5):
... print("l:%d" %l)
... A.append(B[l])
... print("A:" + str(A))
...
j:2
appending (1, 2, 1) at position 1
appending (2, 3, 1) at position 1
appending (1, 4, 2) at position 2
appending (2, 2, 2) at position 2
appending (1, 4, 3) at position 3
appending (3, 2, 1) at position 1
B:[[], [(1, 2, 1), (2, 3, 1), (3, 2, 1)], [(1, 4, 2), (2, 2, 2)], [(1, 4, 3)], []]
l:0
l:1
l:2
l:3
l:4
A:[[], [(1, 2, 1), (2, 3, 1), (3, 2, 1)], [(1, 4, 2), (2, 2, 2)], [(1, 4, 3)], []]
j:0
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
IndexError: list index out of range
Obwohl die Anzeige von Variablen nützlich ist, um zu verstehen, was ein Programm tut, ist dies keine Antwort auf die Frage. –
Wie ich oben gesagt habe, füllt er nicht das erste Element der Liste B auf, so dass das Proorgan fehlschlägt. Ausgehend von diesem, wie Sie richtig vorschlagen, kann er die Korrektur durchführen, die es in der richtigen Weise bevölkert. Wie auch immer die Antwort war nicht klar darüber, dass er fragt und arm an Details. – bull90