我有一个任务,我需要在列表中找到最长的子序列。我在python中实现了这个函数。
def subSequence(sequence):
newSequence = [0]
longest = [0]
for x in range(0,len(sequence)):
print("x is " +str(x)+"\n")
if sequence[x] == sequence[0]:
newSequence.append(sequence[x])
elif sequence[x] > sequence[x-1]:
print("sequence[x] = " +str(sequence[x]))
print("sequence[x-1] = " +str(sequence[x-1]))
newSequence.append(sequence[x])
else:
if longest <= newSequence:
del longest[:]
longest.append(newSequence[:])
print("longest = "+str(longest))
del newSequence[:]
newSequence.append(sequence[x])
else:
del newSequence[:]
return newSequence
mySequence = [1,2,3,2,5,6,7,2]
print(subSequence(mySequence))在我将最后一个2添加到mySequence变量之前,所有这些都是有效的,现在我得到了这个错误
Traceback (most recent call last):
File "D:/Calum/Desktop/subSequence.py", line 27, in <module>
print(subSequence(mySequence))
File "D:/Calum/Desktop/subSequence.py", line 15, in subSequence
if longest <= newSequence:
TypeError: unorderable types: list() <= int()我不太确定添加2是如何导致类型错误发生的
输出应为2,5,6,7,因为它是升序中最长的数字序列
发布于 2016-11-27 21:34:52
这一行:
longest.append(newSequence[:])似乎要将列表附加到longest,请执行以下操作:
longest.extend(newSequence[:])https://stackoverflow.com/questions/40829486
复制相似问题