python--=的用法
一、复合赋值运算符
&=
是一个复合赋值运算符,称为“按位与赋值”运算符。它是 &
(按位与)和 =
(赋值)的组合,用于对变量的值进行按位与运算后,再将结果重新赋值给该变量。适用于需要频繁进行按位与运算并更新的场景,常见于位掩码操作、标志位处理等底层编程中。
用法:
- a &= b 等价于 a = a & b
功能:
-
&
(按位与):对整数a
和b
的二进制表示的每一位进行逻辑与运算(1 & 1 = 1
,其他情况为0
) -
=
(赋值):将运算结果赋值给a
示例:
x = 5 # 二进制: 0101
y = 3 # 二进制: 0011
x &= y # 等价于 x = x & y
print(x) # 输出: 1 (二进制: 0001)
注意事项:
-
仅适用于整数:
&
是按位操作,要求操作数是整数(如int
)。 -
不可变对象:如果变量是不可变类型(如字符串、元组),
&=
会直接创建新对象而非原地修改。 -
与逻辑与的区别:
&
是按位与,而and
是逻辑与(用于布尔值)。
二、计算两个集合的交集
&=
计算两个集合的交集,并将结果重新赋值,适用于动态更新列名集合。
示例:
import pandas as pddf = pd.DataFrame({'A': [1, 2],'B': [3, 4],'C': [5, 6]
})# 初始的 common_columns(可能包含一些列名)
common_columns = {'A', 'B', 'D'}
common_columns &= set(df.columns)
print(common_columns)
输出结果:
{'A', 'B'}
原理:
-
set(df.columns)
将df.columns
转换为集合{'A', 'B', 'C'}
。 -
common_columns & set(df.columns)
计算交集,得到{'A', 'B'}
。 -
结果赋值给
common_columns
,覆盖其原始值。
注意事项:
-
common_columns
必须是可变集合:通常初始化为set()
或包含唯一元素的集合(如{'A', 'B'}
)。如果common_columns
是列表(列表是不可变的集合操作)或其他不可变类型,会抛出错误,可以先转为set,再进行运算。 -
性能优化:集合运算(交集、并集等)的时间复杂度接近 O(1),适合处理大量数据。