3 回答

TA貢獻1852條經驗 獲得超1個贊
您可以使用列表理解:
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]

TA貢獻1864條經驗 獲得超2個贊
'beat' by a lower value appearing earlier in the list意味著您可以記錄當前的最小數字,并與它進行比較。如果大于最小值,則刪除它,如果小于它,則附加到結果并更新最小值。
時間復雜度:O(n)
空間復雜度:O(1)
def trim_list_high_to_low(nums):
min_num = float('inf')
result = []
for num in nums:
if num <= min_num:
result.append(num)
min_num = num
return result
輸出: [5000, 4000, 3500, 3300]

TA貢獻1856條經驗 獲得超5個贊
這是一種僅將每個數字與 的最后一個值進行比較的方法new_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]
添加回答
舉報