Python では、変数にリストが含まれていても、 のように通常の変数として使用する必要がありますindex = []
。Pythonを使用する[index] = []
と、リストの最初の項目を変数に割り当てたいと考えます。同様に、コードを使用すると、[first, last] = [1,2]
変数first
に 1 が割り当てられ、変数last
に 2 が割り当てられます。これをアンパックと呼びます。
また、[index].append(2)
変数名の前後に角括弧を使用しないでください。これによりエラーは発生しませんが、(唯一の項目が の値であるindex
) 新しいリストが作成され、行が実行されたときにリストが破棄されます。
コードは次のようになります (コードの他の部分が正しいと仮定します)。また、このコメントが示唆しているように、空のリストは false であり、Python の規則に従っているため、c
代わりに使用します。c != []
:
tmp = c.pop(0) # taking out the first element from the list as the starting point
complete = tmp[0][-1]
print(complete)
while c: # c != []
complete += tmp[1][-1]
index = [] # [index] = []
for i, pair in enumerate(c):
if pair[0] == tmp[1]:
index.append(i) # [index].append(i)
temp = c.pop(index)
print(complete)
コメントに記載されているように、temp = c.pop(index)
pop は整数を想定しており、コードはリストを指定しているため、この行はエラーになります。
ただし、OPindex
がコードで使用しているため、インデックスを整数として使用するつもりだったと思います。また、OP は、temp
代わりにの使用はtmp
間違いであると述べました。
tmp = c.pop(0) # taking out the first element from the list as the starting point
complete = tmp[0][-1]
print(complete)
while c:
complete += tmp[1][-1]
index = 0
for i, pair in enumerate(c):
if pair[0] == tmp[1]:
index = i
tmp = c.pop(index)
print(complete)