关于python集,'and'和'&'之间有区别吗?

发布于 2021-01-29 18:05:39

如果字典键的值为空,我可以很好地帮助进行问题检查。但是我想知道pythonand和之间是否有区别&?我认为它们应该相似吗?

dict1 ={"city":"","name":"yass","region":"","zipcode":"",
   "phone":"","address":"","tehsil":"", "planet":"mars"}

whitelist = {"name", "phone", "zipcode", "region", "city",
             "munic", "address", "subarea"}

result = {k: dict1[k] for k in dict1.viewkeys() & whitelist if dict1[k]}
关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    and 是一个逻辑运算符,用于比较两个值IE:

    > 2 > 1 and 2 > 3
    True
    

    & 是用于执行按位与运算的按位运算符:

    > 255 & 1
    1
    

    更新资料

    对于集合操作&运算符等效于该intersection()操作,并使用s和t共同的元素创建一个新集合:

    >>> a = set([1, 2, 3])
    >>> b = set([3, 4, 5])
    >>> a & b
    set([3])
    

    and仍然只是一个逻辑比较函数,会将set参数视为非假值。如果两个参数都不是,它将返回最后一个值False

    >>> a and b
    set([3, 4, 5])
    >>> a and b and True
    True
    >>> False and a and b and True
    False
    

    对于它的价值,还请注意,根据Dictionary视图对象的python文档,返回的dict1.viewkeys()对象是“类似于集合”的视图对象:

    通过返回的对象dict.viewkeys()dict.viewvalues()并且dict.viewitems()是视图对象。它们提供了字典条目的动态视图,这意味着当字典更改时,该视图会反映这些更改。

    dictview& other

    返回dictview和另一个对象的交集作为新集合。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看