在 Python 中,即使变量包含一个列表,也应该像index = []
. 当你使用[index] = []
Python 时认为你想将列表的第一项分配给你的变量。同样,当你使用代码时[first, last] = [1,2]
,变量first
被赋值为 1,变量last
被赋值为 2。这称为解包。
此外,在 中[index].append(2)
,您不应在变量名周围使用方括号。这不会引发任何错误,但它会创建一个新列表(唯一的项目是 的值index
),然后在该行执行时销毁该列表。
您的代码应如下所示(假设您的代码的其他部分是正确的)。此外,正如这条评论所建议的,使用c
而不是c != []
因为空列表是错误的并且它遵循 Python 约定。:
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
在代码中的使用,我认为他的意思是使用 index 作为整数。此外,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)