Python 按顺序排列列表,但删除后面出现的较低值
我有一个如下列表:Python 按顺序排列列表,但删除后面出现的较低值,python,list,loops,Python,List,Loops,我有一个如下列表: [5000, 4000, 3500, 4200, 3300] [5000, 4000, 3500, 3300] prev = 2**31 nlist = [] for i in your_list: if i < prev: nlist.append(i) prev = i 我想把这个列表从高到低排序,但同时也要删除所有已经被列表前面出现的较低值“击败”的值。所以上面的列表应该是这样的: [5000, 4000, 3500,
[5000, 4000, 3500, 4200, 3300]
[5000, 4000, 3500, 3300]
prev = 2**31
nlist = []
for i in your_list:
if i < prev:
nlist.append(i)
prev = i
我想把这个列表从高到低排序,但同时也要删除所有已经被列表前面出现的较低值“击败”的值。所以上面的列表应该是这样的:
[5000, 4000, 3500, 4200, 3300]
[5000, 4000, 3500, 3300]
prev = 2**31
nlist = []
for i in your_list:
if i < prev:
nlist.append(i)
prev = i
我尝试过在列表上循环并将其与其他值进行比较,但我在for循环中迷失了方向。我想我遗漏了一些非常明显的东西
非常感谢任何帮助或其他文章 使用如下代码段:
[5000, 4000, 3500, 4200, 3300]
[5000, 4000, 3500, 3300]
prev = 2**31
nlist = []
for i in your_list:
if i < prev:
nlist.append(i)
prev = i
您可以使用列表:
d = [5000, 4000, 3500, 4200, 3300]
new_d = [a for i, a in enumerate(d) if not i or d[i-1] > a]
输出:
[5000, 4000, 3500, 3300]
“节拍”由列表前面出现的较低值进行
表示您可以
记录当前最小值,并与之进行比较。如果大于最小值,则将其删除;如果小于最小值,则追加到结果并更新最小值
时间复杂度:O(n)空间复杂度:O(1)
def微调列表从高到低(nums):
最小值=浮点值('inf')
结果=[]
对于num中的num:
如果num这里有一种方法,只将每个数字与new\u d
的最后一个值进行比较:
d = [5000, 4000, 3500, 4200, 3300]
new_d = d[:1]
for item in d[1:]:
if item < new_d[-1]:
new_d.append(item)
print(new_d)
>>> [5000, 4000, 3500, 3300]
d=[500040003504203300]
新的d=d[:1]
对于d[1:]中的项目:
如果项目>> [5000, 4000, 3500, 3300]
您好,您的问题不清楚,对于您给出的示例,我看不到任何排序。请提供一个更有意义的示例,以便我们可以帮助您,如果有两个相等的值,会发生什么情况?它们是否都存储了?到目前为止,所有答案都只进行过滤,没有排序。如果你想不想排序,你需要一个更好的例子。非常感谢!我试过这样的方法,但我想我犯了错误。谢谢!