运算符是构成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。
参考资料
- 官网-python运算符
- python运算符
- 使用SimHash进行海量文本去重