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

如何比较两个布尔列表?Python编写真/假阳性计数函数需求

计算新冠检测真阳性(TP)与假阳性(FP)的Python函数

问题说明

给定两个长度为10的布尔列表:

  • HasCovid:对应编号患者实际是否感染新冠(True为感染,False为未感染)
  • TestsPositive:对应编号患者的新冠检测结果是否为阳性(True为阳性,False为阴性)

需要实现两个函数:

  • num_TP:统计真阳性数量(实际感染且检测阳性的患者)
  • num_FP:统计假阳性数量(未感染但检测阳性的患者)

函数实现

def num_TP(has_covid, tests_positive):
    # 统计同时满足"实际感染"和"检测阳性"的患者数量
    return sum(hc and tp for hc, tp in zip(has_covid, tests_positive))

def num_FP(has_covid, tests_positive):
    # 统计满足"未感染"但"检测阳性"的患者数量
    return sum(not hc and tp for hc, tp in zip(has_covid, tests_positive))

测试示例

用题目提供的测试数据验证函数:

# 题目给定的患者感染状态与检测结果
HasCovid = [True, True, True, False, False, True, False, True, False, False]
TestsPositive = [True, False, True, False, True, True, False, True, False, True]

# 输出计算结果
print("真阳性数量:", num_TP(HasCovid, TestsPositive))  # 输出:4
print("假阳性数量:", num_FP(HasCovid, TestsPositive))  # 输出:2

实现说明

  • 用zip()函数将两个列表对应位置的元素配对,保证每个患者的感染状态与检测结果一一对应
  • 生成器表达式结合sum()函数完成计数:布尔值True在求和时会被当作1,False当作0,无需额外定义计数变量
  • 函数适配任意长度为10的布尔列表输入,只要两个列表长度一致即可正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:05:46