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}
总结
-(差集)最高优先级
&(交集)次高优先级
^(对称差)次次高优先级
|(并集)最低优先级
使用括号 () 可以改变默认优先级,确保计算顺序符合预期。
推荐实践
✅ 尽量使用 () 明确计算顺序,防止意外错误。
✅ 记住 - 比 |、^ 更早计算,& 也比 | 优先级高。
✅ 对于复杂集合计算,拆分成多个步骤可提高可读性。
这样,你的 set 计算逻辑就不会出错啦!🚀
💬 评论