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

Python实现列表滑动窗口求和后统计相邻值比较的布尔结果次数

Python实现代码及说明
  • 首先修正现有代码的变量命名问题:不要用list作为自定义变量名,这是Python内置关键字,会导致后续调用内置list功能时报错
  • 补充滑动窗口求和后的比较逻辑、布尔值统计逻辑

完整可运行代码如下:

# 读取数据部分
with open("data.txt") as f:
    data = [int(line.strip()) for line in f]

def funcAOC2():
    # 1. 生成长度为3的滑动窗口和列表
    window_sums = []
    for i in range(len(data) - 2):
        current_sum = data[i] + data[i+1] + data[i+2]
        window_sums.append(current_sum)
    # 2. 生成布尔比较列表,同时统计True/False数量
    bool_list = []
    true_count = 0
    false_count = 0
    for j in range(1, len(window_sums)):
        # 判断前一个值是否小于后一个值
        compare_res = window_sums[j-1] < window_sums[j]
        bool_list.append(compare_res)
        if compare_res:
            true_count += 1
        else:
            false_count += 1
    # 输出结果
    print(f"布尔结果列表:{bool_list}")
    print(f"true: {true_count} false: {false_count}")
    return true_count, false_count

# 调用函数执行
funcAOC2()

如果需要更简洁的写法,也可以用列表推导式简化逻辑:

# 简化版实现
with open("data.txt") as f:
    data = [int(line.strip()) for line in f]

window_sums = [sum(data[i:i+3]) for i in range(len(data)-2)]
bool_res = [window_sums[i] < window_sums[i+1] for i in range(len(window_sums)-1)]
true_cnt = bool_res.count(True)
false_cnt = len(bool_res) - true_cnt
print(f"true: {true_cnt} false: {false_cnt}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:09