关于python集,'and'和'&'之间有区别吗?
如果字典键的值为空,我可以很好地帮助进行问题检查。但是我想知道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]}
-
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和另一个对象的交集作为新集合。
…