Python 的 "in" 运算符与集合 {}

Python's "in" operator with set {}

我正在尝试了解 in 运算符在 Python 中的用法。 以下情况有区别吗?

案例 1:

a = "Hello"
b = "Help"
b[0] in {a[0], '.'} #case1_variant
>> True


案例 2:

a = "Hello"
b = "Help"
b[0] in a[0] #case2_variant
>> True

虽然输出相同,但我想了解 case1_variant 代表什么。

第一个是集合对象,里面有a的第一个字母,加上句点。它是 in 可以操作的序列类型。

第二个是一个包含单个字符的字符串。它也是一种序列类型, in 运算符也可以对其进行操作。第二个没有句点。

in 关键字有两个用途:

  1. in 关键字用于检查值是否存在于序列(列表、范围、字符串等)中。
  2. in 关键字也用于在 for 循环中遍历序列:

从您示例中的 in 关键字的角度来看,这两种情况之间没有区别。它们都适用于首次使用 in 关键字。 in 关键字检查变量是否存在于数据集或数据列表中。您提供了两种不同的有效数据类型,并检查了 "H" 是否在其中任何一个中,并确保 "H" 在您检查的每个变量中。

周期应该对数据没有影响。只不过是数据中的一项与 in 正在查找的条件不匹配。

从字面上看,第一个相当于检查"H" in "H.";在您的例子中,您正在迭代 set 的两个字符。这在字符匹配的第一次迭代中停止。因此 . 可以是任何东西,True/False,一个数字,None,等等。

而第二个只是检查 "H" in "H",这显然是正确的