我学习Python大约一个多月了,我遇到了关于视图和集合的讨论。我正在使用的《学习Python》一书说视图是可迭代的,并且其对象的顺序与字典的顺序相同,但视图也支持集合操作。
在我看来,他们可以做所有场景能做的事情。它看起来像鸭子,叫声像鸭子,并且允许像鸭子一样进行集合操作。那么为什么集合和视图是不同类型的对象呢?
另外,我搜索“Set View Python Difference”以查找重复的问题,但找不到任何问题。
只有dict.keys()
字典视图是always一套(它的行为类似于一套,但具有字典的实时视图)。
The dict.values()
视图是never集合,因为不能保证值是唯一的,也不能保证可散列(集合的要求)。您还必须在创建值字典视图时预先计算所有哈希值,这可能是非常昂贵的操作。您始终可以使用显式set(dictionary.values())
在这种情况下。
这就留下了dict.items()
视图,即mostly一个集合,前提是所有值都是可散列的;这是因为当您从视图创建交集、并集或其他新集时,您have产生一个新的set
对象,要求整个键值对是可哈希的;在这种情况下,您不能再保证只有键是唯一的。
另请参阅字典视图对象文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)