张芷铭的个人博客

Python 中 set 的符号计算优先级

Python set 计算符号的优先级规则

在 Python 中,set 支持集合运算符,如 并集(|)、交集(&)、差集(-)、对称差集(^),其 优先级规则 类似于数学逻辑运算。

集合运算符优先级(从高到低)

运算符名称优先级**(高 → 低)**
()括号(最高优先级)最高
-差集(difference)1
&交集(intersection)2
^[[对称差集]](symmetric difference)3
``并集(union)

优先级示例

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
C = {5, 6, 7, 8}

# 1️⃣ 差集(-)优先级高于并集(|)
print(A | B - C)  # 等价于 A | (B - C)
# 结果: {1, 2, 3, 4, 5}

# 2️⃣ 交集(&)优先级高于并集(|)
print(A | B & C)  # 等价于 A | (B & C)
# 结果: {1, 2, 3, 4, 5, 6}

# 3️⃣ 交集(&)优先级高于对称差集(^)
print(A ^ B & C)  # 等价于 A ^ (B & C)
# 结果: {1, 2, 3, 4, 7, 8}

# 4️⃣ 使用括号明确计算顺序
print((A | B) - C)  # 先求并集,再做差集
# 结果: {1, 2, 3, 4}

print(A | (B - C))  # 先求 B - C,然后取并集
# 结果: {1, 2, 3, 4, 5}

总结

  1. -(差集)最高优先级

  2. &(交集)次高优先级

  3. ^(对称差)次次高优先级

  4. |(并集)最低优先级

  5. 使用括号 () 可以改变默认优先级,确保计算顺序符合预期。

推荐实践

尽量使用 () 明确计算顺序,防止意外错误。

记住 - 比 |、^ 更早计算,& 也比 | 优先级高

对于复杂集合计算,拆分成多个步骤可提高可读性

这样,你的 set 计算逻辑就不会出错啦!🚀

💬 评论