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

如何在Python中判断列表是否为仅含0和1的二进制列表

问题分析与修复

你的函数存在两个核心问题:

  1. 循环提前终止:函数在遍历第一个元素时就直接返回结果了——如果第一个元素是0/1,直接return True,完全没检查后续元素;如果第一个元素是2-9,return False,但如果第一个元素是其他非0/1值(比如-1、字符串'0'),也会错误返回True。
  2. 判断范围不全:只排除了2-9,没有覆盖所有非0、1的情况(比如负数、浮点数、字符串等)。

另外,你写的break完全没用,因为return语句会直接结束函数,break根本不会被执行。

修复方案

方案1:遍历检查所有元素

def is_binary(y):
    for x in y:
        # 检查当前元素是否不是0或1
        if x not in (0, 1):
            return False
    # 所有元素都通过检查才返回True
    return True

方案2:用all()函数简化代码

Python的all()函数可以更简洁地实现逻辑,它会验证迭代器中所有元素是否都为True:

def is_binary(y):
    return all(x in (0, 1) for x in y)

测试验证

  • 测试二进制列表:is_binary([1,0,0,0,1,1]) → 返回True
  • 测试含非0/1元素的列表:is_binary([1,0,2]) → 返回False
  • 测试含其他类型元素的列表:is_binary([1,0,'1']) → 返回False(字符串'1'不等于整数1,符合预期)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:50:43