zoukankan      html  css  js  c++  java
  • 一题多解(一) —— list(Python)判空(以及 is 与 == 的区别)

    >> l = []

    1. ==

    >> l == []
    True

    2. not

    >> not l
    True

    3. 注意 is 与 == 的区别

    >> l is []
    False

    显然不能用 is [] 来对 list 进行判空。这里就涉及 is 与 == 两大运算符的区别了。

    Python中对象包含的三个基本要素,分别是:

    • id(身份标识);

      • 与编译器为对象分配的内存地址挂钩;
    • type(数据类型);

    • value(值);

    is 和 == 都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。== 比较操作符 和 is 同一性运算符(identical)区别:

    • == 比较的是 value(值)是否相等;
    • is 比较的是 id 是否相同,也即两对象是否指向的同一块内存空间;

    但对于整型(integer),或者字符串类型(str):

    >> a = 1
    >> b = 1
    >> a is b
    True
    >> id(a)
    32212488L
    >> id(b)
    32212488L
    
    
    >> a = 'hello'
    >> b = 'hello'
    >> id(a) 
    58279096L
    >> id(b)
    58279096L
    >> a is b
    True

    这点和 C/C++ 编程是一致的,都利用了内存池的机制;

  • 相关阅读:
    实现centos系统的自动化安装部署
    加密与CA证书的创建
    Linux系统启动和内核管理
    进程,系统性能和计划任务
    第十七周运维作业
    第十六周运维作业
    第十四周运维作业
    第十三周运维作业
    第十二周运维作业
    第十一周运维作业
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9424148.html
Copyright © 2011-2022 走看看