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

如何检测Python列表元素是否全为正数或全为负数

Python 列表符号一致性校验实现

要实现「判断列表是否仅包含全正数或仅包含全负数,不可同时存在正负数值」的需求,可以通过Python内置的all()函数快速实现,时间复杂度为O(n),性能和可读性都比较好。

核心实现代码

def check_sign_consistency(input_list):
    # 过滤掉列表中的0(0既不是正数也不是负数,若业务要求禁止出现0可删除该过滤逻辑)
    non_zero_values = [num for num in input_list if num != 0]
    # 空列表/全0列表的返回值可根据业务需求自行调整
    if not non_zero_values:
        return True
    # 以第一个非零值的符号为基准,校验所有非零值符号是否一致
    base_positive = non_zero_values[0] > 0
    return all((num > 0) == base_positive for num in non_zero_values)

测试效果

你给出的示例运行结果完全符合预期:

  • check_sign_consistency([1, 5, 3]) → 返回 True
  • check_sign_consistency([1.2, -2, 5, -0.5]) → 返回 False
  • check_sign_consistency([-2, -4]) → 返回 True

可选调整方案

如果你的业务规则要求列表中不能出现0,直接去掉过滤逻辑即可,修改后的代码如下:

def check_sign_consistency_no_zero(input_list):
    if not input_list:
        return True
    base_positive = input_list[0] > 0
    return all((num > 0) == base_positive for num in input_list)

该方案同样支持整数、浮点数等数值类型的校验,无需额外做类型兼容处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 18:06:10