Python 返回超过之前所有元素的元素列表

Python 返回超过之前所有元素的元素列表,python,python-3.x,Python,Python 3.x,我是Python新手,请任何人指出我在代码中犯的错误: numlist = [3,2,5,5,7,6,1,8,4] def peaks(numlist): exceed = [] for elem in numlist: for num in exceed: if elem not in exceed: if num in exceed < elem in numlist:

我是Python新手,请任何人指出我在代码中犯的错误:

numlist = [3,2,5,5,7,6,1,8,4]
def peaks(numlist):
    exceed = []
    for elem in numlist:
        for num in exceed:
            if elem not in exceed:
                if num in exceed < elem in numlist:
                    exceed = exceed + [elem]
                    print(exceed)
numlist=[3,2,5,5,7,6,1,8,4]
def峰值(numlist):
超过=[]
对于numlist中的元素:
对于超出的num:
如果元素不超过:
如果num in超过
这就是我打算做的:

峰值(numlist)==>[3,5,7,8]


谢谢你的帮助

您的代码过于复杂,有几个问题

  • 如果num in超过
    ??你在比较布尔人。。。也许你需要
    count

  • 对于超出的num:
    如Alex所评论的,首先为空,并且您测试
    是否元素不在这个循环中超出。。。过于复杂
只要保持一个最高的元素值,就可以使用如下的单个循环:

numlist = [3,2,5,5,7,6,1,8,4]
maxvalue=numlist[0]-1
outlist=[]
for e in numlist:
    if e<=maxvalue:
        pass
    else:
        maxvalue = e
        outlist.append(e)

print(outlist)

您的代码过于复杂,有几个问题

  • 如果num in超过
    ??你在比较布尔人。。。也许你需要
    count

  • 对于超出的num:
    如Alex所评论的,首先为空,并且您测试
    是否元素不在这个循环中超出。。。过于复杂
只要保持一个最高的元素值,就可以使用如下的单个循环:

numlist = [3,2,5,5,7,6,1,8,4]
maxvalue=numlist[0]-1
outlist=[]
for e in numlist:
    if e<=maxvalue:
        pass
    else:
        maxvalue = e
        outlist.append(e)

print(outlist)

numlist的第一个成员将是答案的第一个成员。任何其他元素只有在超过numlist左侧部分的最大值时才会添加到答案中:

numlist = [3,2,5,5,7,6,1,8,4]
print ([numlist[0]]+[n for i,n in enumerate(numlist[1:]) if n>max(numlist[:i+1])])

numlist的第一个成员将是答案的第一个成员。任何其他元素只有在超过numlist左侧部分的最大值时才会添加到答案中:

numlist = [3,2,5,5,7,6,1,8,4]
print ([numlist[0]]+[n for i,n in enumerate(numlist[1:]) if n>max(numlist[:i+1])])

对于EXCEDE中的num:
永远不会做任何事情,因为该列表总是空的,没有增长的机会。@Madik088不,对不起,这里有几个问题。谢谢大家@Alex Hall和@Jean françois fabre@Madik088:
对于EXCEDE:
中的num,永远不会做任何事情,因为该列表总是空的,没有增长的机会。@Madik088不,对不起,这里有几个问题。谢谢大家@Alex Hall和@Jean françois fabre@Madik088: