当前位置: 首页 > 面试题库 >

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

颛孙麻雀
2023-03-14
问题内容

如果字典键的值为空,我可以很好地帮助进行问题检查。但是我想知道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和另一个对象的交集作为新集合。



 类似资料:
  • 问题内容: 和之间有什么区别 例如,当你查看类时,构造函数具有以下签名: 对于方法之一: 问题答案: 第一个说是“是E的祖先的某种类型”。第二个说是“某种类型,它是E的子类”。(在两种情况下,本身都可以。) 因此,构造函数使用该? 形式,以确保在从集合中获取值时,它们将全部为E或某个子类(即,它是兼容的)。该方法试图将值放入集合中,因此集合必须具有 或超类的元素类型。 例如,假设你有一个这样的类层

  • 问题内容: SQL解释逻辑运算符和的方式是否有所不同? 问题答案: 对于mySQL:手册未明确说明,但它们被列为相同: AND, && 逻辑与。如果所有操作数都不为零且不为NULL,则计算为1;如果一个或多个操作数为0,则计算为0,否则返回NULL。 该运算符优先级页面也没什么distiction。

  • 问题内容: 将一个使用在另一个上是否有好处?在Python 2中,它们似乎都返回相同的结果: 问题答案: 在将返回2.5并且将返回2。前者是浮点除法,后者是地板除法,有时也称为整数除法。 在或更高版本的2.x行中,除非执行,否则整数没有区别,这会使采取3.0的行为。 不管将来的进口是什么,都会归还,2.0因为这是操作的地板分割结果。

  • 问题内容: 和之间有什么区别? 我曾经使用,但是它不允许我向其中添加元素,而确实可以。 问题答案: extends 通配符声明意味着以下任何一项都是合法转让: Reading -根据上述可能的任务,可以保证从中读取哪种类型的对象List foo3: 你可以阅读,Number因为任何可以分配为包含或的子类的列表Number。 你看不到,因为它可能指向。 你看不到因为它可能指向。 Writing -鉴

  • 问题内容: 之间有什么区别 例如: 如果我使用一个或另一个真的有关系吗? 问题答案: 基本上destroy在模型上运行任何回调,而delete实际上不运行。 从Rails API中: 删除数据库中的记录并冻结该实例以反映不应进行任何更改(因为它们不能持久保存)。返回冻结的实例。 只需在记录的主键上使用SQL DELETE语句删除该行,就不会执行任何回调。 要强制执行对象的回调或任何:关联选项,请使

  • 问题内容: 我的Google-fu使我失败了。 在Python中,以下两个相等测试是否等效? 这是否适用于您要比较实例(list说)的对象? 好的,这样可以回答我的问题: 因此,==测试重视在哪里is进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象(如果变量引用的对象相等),则将返回。 在您的情况下,第二个测试仅能工作,因为Python会缓存小的整数对象,这是实现细节。对