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++ 编程是一致的,都利用了内存池的机制;

  • 相关阅读:
    cmd常用指令
    python笔记01-05
    python安装过程中的一些问题
    初始化spring容器的一种方式
    切入点范式
    spring的list注入多个值
    Statement和PreparedStatement有什么区别?哪个效率高?
    sql 的四种隔离级别
    简单的spring核心配置文件编写
    spring
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9424148.html
Copyright © 2011-2022 走看看