运算符是构成python表达式的基础,了解python有哪些运算符及运算符之间的优先级,对于构建合适的python表达式很有帮助,本文主要记录python运算符及优先级关系。
运算符的优先级
如下表所示,优先级按照从低到高排序,“lambda”优先级最低,“括号、列表推导、元组推导、字典推导、集合推导”优先级最高,位于同一方框中的运算符具有相同的优先级。下表中运算符中带“x”的表示一元运算符。
| 运算符 | 描述 |
|---|---|
| lambda | lambda表达式 |
| if-else | 条件表达式 |
| or | 布尔运算或 |
| and | 布尔运算与 |
| not x | 布尔运算取反 |
| in, not in, is, is not, <, <=, >, >=, !=, == | 成员检查、实体检查、比较运算 |
| | | 位运算或 |
| ^ | 位运算异或 |
| & | 位运算与 |
| <<, >> | 位运算移动 |
| +, - | 加法, 减法 |
| *, @, /, //, % | 乘法、矩阵乘法、除法、整除、取余 |
| +x, -x, ~x | 取正、取反、按位取反 |
| ** | 幂运算 |
| await x | await 表达式 |
| x[index], x[index:index], x(arguments…), x.attribute | 索引、切片、调用、属性引用 |
| (expressions…), [expressions…], {key: value…}, {expressions…} | 括号, 列表、元组、字典、集合推导式 |
补充材料

SimHash
SimHash在计算文档hashcode值、及计算两个hashcode之间的“海明距离”时,需要使用到“位运算符”。关于SimHash的原理及实现可以阅读参考资料3。