python - python 查找下一个元素是否小于它之前的元素并将其从列表中删除

标签 python

我的代码遇到问题,我正在编写一个方法,该方法将检查下一个元素是否小于前一个元素,如果是,则会将其删除。

示例:

输入:[1, 20, 10, 30]

所需输出:[1,20,30]

实际输出:[30]

def findSmaller(s):
    i = -1
    y = []
    while i <= len(s):
        for j in range(len(s)):
            if s[i+1] <= s[i]:
                del s[i + 1]
                y.append(s[i])
            i += 1
            return y

最佳答案

如果您不确定循环如何工作我建议添加一些打印语句。这样您就可以看到循环实际上在做什么,尤其是在更复杂的问题中,这很有用。

这样的东西可以解决你的问题。

a = [1,2,3,2,4]
for k in range(0,len(a)-2): #-2 so that one don't go past the loops length
    #print(k)
    y = a
    if(a[k]>a[k+1]):
        del y[k+1] #delete the k+1 element if it is 

关于python - python 查找下一个元素是否小于它之前的元素并将其从列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40439487/

相关文章:

python - Sympy:如何显示导致除以零的条件?

python - DataFrame 中包含的各个 Series 是否维护自己的索引?

python - win32api & pyhook - 如何获取用户的打字语言?

python - 如何使用 Python 将代码写入 .txt 文件?

python - 如何使用正则表达式查找所有 Markdown 链接?

python - pyplot : Closing a show() window doesn't continue code

python - 使用带有身份验证的 scrapy 旋转代理

python - 如何通过节点id获取节点

python - 按一列分组并在另一列中唯一

c# - Python 这是一个字符串还是一个字符串数组?