美文网首页
Python高阶(持续更新中...)

Python高阶(持续更新中...)

作者: o0龙与猫0o | 来源:发表于2020-02-11 15:34 被阅读0次

对象的比较

== 操作符比较对象之间的值是否相等
在 Python 中,每个对象的身份标识,都能通过函数 id(object) 获得。因此,'is'操作符,相当于比较对象之间的 ID 是否相等

a = 10
b = 10
 
a == b
True
 
id(a)
4427562448
 
id(b)
4427562448
 
a is b
True

首先 Python 会为 10 这个值开辟一块内存,然后变量 a 和 b 同时指向这块内存区域,即 a 和 b 都是指向 10 这个变量,因此 a 和 b 的值相等,id 也相等,a == b和a is b都返回 True。

注意,如果上面的代码改成 a=257,b=257,a is b为 False,并且 id(a) 和 id(b) 也不相等
a is b 为True的情况,只适用于 -5 到 256 范围内的数字
出于对性能优化的考虑,Python 内部会对 -5 到 256 的整型维持一个数组,起到一个缓存的作用。这样,每次你试图创建一个 -5 到 256 范围内的整型数字时,Python 都会从这个数组中返回相对应的引用,而不是重新开辟一块新的内存空间。

'=='操作符,执行a == b相当于是去执行a.eq(b),而 Python 大部分的数据类型都会去重载eq这个函数,其内部的处理通常会复杂一些。

相关文章

  • Python高阶(持续更新中...)

    对象的比较 == 操作符比较对象之间的值是否相等在 Python 中,每个对象的身份标识,都能通过函数 id(ob...

  • Python 高阶函数(持续更新)

    1、map()是 Python 内置的高阶函数,它接收一个函数 f和一个list,并通过把函数 f 依次作用在 l...

  • Leetcode 88. Merge Sorted Array

    Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 21. Merge Two Sorted Li

    Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 9. Palindrome Number

    Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 4. Median of Two Sorted

    Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 64: Minimum Path Sum

    动态规划 Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 7. Reverse Integer

    整型反转,Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 132. Palindrome Partiti

    动态规划,Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

  • Leetcode 120. Triangle

    动态规划,Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。

网友评论

      本文标题:Python高阶(持续更新中...)

      本文链接:https://www.haomeiwen.com/subject/uxctfhtx.html