Python中的比较操作

Python中的比较操作也比较奇葩呀!

  • 比较操作符是没有优先级的,不比c语言
  • 可以是一个串,a<b<c等价于a<b and b<c
  • 不同类型的值也可以判等,只不过不同类型总是不相等
  • 不同类型的值使用<,>等符号时,会报错,type error
  • NaN值比较特殊,任何值与它相比,都会是False
  • string和bytes是不能比较的
  • tuple和list也可以判断相等和比较,但是按照顺序依次比较,另短的更小
  • map(dict)可以判断相等,除非他们的key,value都相等,但不能比较大小
  • set的比较操作意味着是否是子集或超集
  • in,not in 是判断是否是成员,基本所有都可以用了
  • 自定义的类,如果实现了__contains_()函数,in会根据这个函数判断,相当于y.__contains(x)
  • 自定义的类,如果实现了__iter__()和一个老的方式__getitem__()也会影响in的判断
  • is,not is 就是判断两个object是否相等了

参考

https://docs.python.org/3.1/reference/expressions.html#in

看完了发现3.8的文档更好些

https://docs.python.org/3.8/reference/expressions.html#in

posted @ 2020-12-29 00:27  混下来  阅读(518)  评论(0编辑  收藏  举报