红联Linux门户
Linux帮助

python中is和in的区别

发布时间:2011-10-29 19:10:19来源:红联作者:wonderall
a=[1,2,3]
b=[1,2,3]
c=d=[1,2,3]

怎么c is d结果为true,而a in b和c in d都为false,百思不得其解,请了解的给个详解,两者的判断依据是什么呢?谢谢
文章评论

共有 3 条评论

  1. wonderall 于 2011-10-31 09:53:00发表:

    只能是一个元素in元组,而不能是一个元组in另一个元组吗

  2. age 于 2011-10-30 16:10:43发表:

    用处不同
    in是判断某个元素是否在集合中
    is是判断二个参数对像id是否相同,可以把对象id理解为指针
    对你上面

    引用:
    a=[1,2,3]
    b=[1,2,3]
    c=d=[1,2,3]

    首先a和b是分别定义的,即使它们值相同,也会在内存中创建二个对像,所以它们的对象id并不同。
    其次c和d已经指明,c=d,因而是同时创建的,所以二者是指向同个数据区的,即对象id相同
    这也就是c is d 结果为ture,而a is b结果为false的原因了
    仅仅值相同是不够的

  3. tim211314 于 2011-10-29 21:25:00发表:

    i in x 的意思是i是x的一个元素,a=[1,2,3]当然不是b的元素。b的元素有1,2,3