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

Python中判断两数相等始终返回False的问题求助

解决Python中数值相等判断始终返回False的问题

嘿,我来帮你揪出这个问题的根源~

从你给出的输出里能看到关键线索:比如有一行是False 1 1——明明array[index2][2]的数值是1,index也是1,但判断结果却是False。这种情况大概率是数据类型不匹配导致的!

问题原因

你提到元组的第三个元素是数字,但很可能它实际存储的是字符串类型(比如从文本文件、用户输入读取数据时,默认是字符串,没转换成整数)。而index是range()生成的整数,字符串和整数用==比较时,哪怕字面数值一样,也会返回False。

快速验证方法

你可以在判断前加一行打印类型的代码,确认两者的类型:

print(type(array[index2][2]), type(index))

如果输出是<class 'str'> <class 'int'>,那就能实锤是类型问题了。

解决方案

有两种思路可以解决:

  1. 比较时转换类型:把元组里的元素转成整数再和index比较,修改判断条件:
    if int(array[index2][2]) == index:
    
  2. 提前转换类型:在生成array这个元组列表的时候,就把第三个元素转换成整数,这样后续比较就不用重复转换了,比如:
    # 假设你是这样生成元组的,加个int转换
    array = [(x, y, int(z)) for x, y, z in original_data]
    

额外优化建议

你的嵌套循环写法可以更Pythonic一点,用enumerate()来同时获取索引和元素,可读性更好:

for idx, item in enumerate(array):
    for idx2, item2 in enumerate(array):
        if idx != idx2:
            print(int(item2[2]) == idx, item2[2], idx, "\n")

下次遇到类似“数值看起来相等但判断不成立”的问题,先检查两个值的类型,这是初学者最容易踩的坑哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:17:31