首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回超过所有先前元素的元素列表

返回超过所有先前元素的元素列表
EN

Stack Overflow用户
提问于 2016-12-01 23:39:34
回答 2查看 247关注 0票数 1

我是Python的新手,谁能指出我在代码中犯的错误:

代码语言:javascript
复制
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)

这就是我想要做的:

峰值(数字列表)==> 3,5,7,8

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2016-12-01 23:43:33

你的代码太复杂了,而且有几个问题。

  • if num in exceed < elem in numlist: ??你在比较布尔值...也许你一开始需要把instead?
  • for num in exceed:count设为空,然后在这个循环中测试if elem not in exceed ...overcomplicated.

只要保持一个最高的元素值,就像这样用一个循环来做:

代码语言:javascript
复制
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)

结果:

代码语言:javascript
复制
[3, 5, 7, 8]
票数 5
EN

Stack Overflow用户

发布于 2016-12-02 00:32:37

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

代码语言:javascript
复制
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])])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40914740

复制
相关文章

相似问题

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