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

Python中使用in运算符判断两个集合包含关系返回False的原因是什么?

原因说明

in运算符的作用是判断左侧的单个元素是否属于右侧的可迭代对象,你当前的写法set(bestStudents) in set(scholarships),实际是在判断「{56, 75, 23}这个集合对象本身,是不是scholarships转成的集合里的一个元素」。而set(scholarships)里的元素都是整数,不存在集合类型的元素,所以最终返回False。

正确写法

如果你要确认bestStudents里的所有元素都存在于scholarships中(即前者是后者的子集),可以用两种方式:

  • 调用集合的issubset()方法:
    set(bestStudents).issubset(set(scholarships))
    
  • 使用子集判断运算符<=:
    set(bestStudents) <= set(scholarships)
    

如果要直接判断两个集合的元素完全一致,直接用等号判断即可:

set(bestStudents) == set(scholarships)

以上三种写法在你的示例场景下都会返回True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:09