首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表中提取最长的subSequence。找不到TypeError

从列表中提取最长的subSequence。找不到TypeError
EN

Stack Overflow用户
提问于 2016-11-27 21:26:50
回答 1查看 36关注 0票数 1

我有一个任务,我需要在列表中找到最长的子序列。我在python中实现了这个函数。

代码语言:javascript
复制
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变量之前,所有这些都是有效的,现在我得到了这个错误

代码语言:javascript
复制
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,因为它是升序中最长的数字序列

EN

回答 1

Stack Overflow用户

发布于 2016-11-27 21:34:52

这一行:

代码语言:javascript
复制
          longest.append(newSequence[:])

似乎要将列表附加到longest,请执行以下操作:

代码语言:javascript
复制
          longest.extend(newSequence[:])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40829486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档