あなたはBで何かを追加することを忘れているようだ[0]、あなたはここで1と2を配置するためにリストを追加始めるあなたは
>>> 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
変数の表示はプログラムの機能を理解するのに便利ですが、これは質問に対する答えではありません。 –
どのように私は上記の、彼はリストBの最初の要素を設定しないので、prorgamは失敗します。このことから、あなたが正しく示唆するように、彼は正しい方法でそれを入力して修正を実行することができます。とにかく、彼は尋ねる者と細部の貧弱さに関する答えは明らかではありませんでした。 – bull90