【问题标题】:Comparing two sets with "in" in Python在 Python 中将两个集合与“in”进行比较
【发布时间】:2021-12-27 00:22:45
【问题描述】:

我有两套。

bestStudents = [56, 75, 23]
scholarships=[75, 23, 56]

我正在尝试查看 bestStudents 中的元素是否在设置的奖学金中,它们是。 当我使用: (set(bestStudents) in set(scholarships)) 我是假的

这是为什么呢? bestStudents 的所有元素都在奖学金里?

【问题讨论】:

  • 你的意思是set(bestStudents) == set(scholarships)
  • 没有。在这种情况下,它们的长度相等,但并非总是如此。

标签: python set boolean boolean-logic


【解决方案1】:

in 不是用来比较sets

>>> [23] in set(scholarships)
True

>>> {23} in set(scholarships)
False

你有一些谓词可以做到这一点,比如issubset

>>> set(bestStudents).issubset(scholarships)
True

【讨论】:

  • 当然是正确答案。我认为可能值得展示 set(bestStudents) in [set(scholarships)] 来说明为什么 OP 以错误的方式思考它。
  • 我认为速记是bestStudents < scholarships ?
  • 你完全正确,也许是<=。检查docs.python.org/3/library/stdtypes.html#frozenset.issubset
猜你喜欢
  • 2023-04-02
  • 2014-04-01
  • 1970-01-01
  • 2018-06-22
  • 2017-07-14
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
相关资源
最近更新 更多