You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表元素比较:统计小于前序元素的次数

列表相邻元素降序次数统计的实现方案

需求明确

  • 初始计数count为0
  • 待处理列表:[120, 134, 155, 145, 160, 190, 200, 185]
  • 统计规则:当元素小于其前一个元素时,count加1
  • 预期结果:count = 2(对应145<155、185<200这两个情况)

关于你提出的嵌套循环思路

你想的嵌套循环for this in mylist: for that in mylist:完全没必要,这种方式会遍历所有元素对,做大量无效对比,既降低效率又增加逻辑复杂度——我们只需要逐个对比相邻的两个元素就够了。

两种高效实现方法

方法1:基础索引遍历

从列表的第二个元素开始,逐个和前一个元素对比:

mylist = [120, 134, 155, 145, 160, 190, 200, 185]
count = 0

# 从索引1开始,因为要和前一个索引(i-1)的元素对比
for i in range(1, len(mylist)):
    if mylist[i] < mylist[i-1]:
        count += 1

print(count)  # 输出:2

方法2:用zip函数简化代码

利用zip将原列表和它的切片(从第二个元素开始)配对,生成相邻元素对,再统计符合条件的数量:

mylist = [120, 134, 155, 145, 160, 190, 200, 185]
# zip(mylist[:-1], mylist[1:]) 会生成(120,134), (134,155), ..., (200,185)这样的元素对
count = sum(1 for prev, curr in zip(mylist[:-1], mylist[1:]) if curr < prev)

print(count)  # 输出:2

这两种方法的时间复杂度都是O(n),比嵌套循环的O(n²)高效很多,逻辑也更清晰。

内容的提问来源于stack exchange,提问作者Federico Gottardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:48:22