首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >集合和视图之间的差异

集合和视图之间的差异
EN

Stack Overflow用户
提问于 2014-07-18 17:25:59
回答 1查看 607关注 0票数 2

我已经学习Python一个多月了,我遇到了一个关于视图和集合的讨论。我正在使用的“学习Python”( Learning )一书指出,视图是可迭代的,其对象的顺序与字典的顺序相同,但是视图也支持set操作。

在我看来,他们可以做每件事。它看起来像鸭子,庸医像鸭子,并允许设置操作就像鸭子。为什么集合和视图是独立类型的对象?

此外,我搜索了“设置视图Python差异”,以查找重复的问题,但找不到任何问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-18 17:30:18

只有dict.keys()字典视图始终是一个集合(就其行为而言,它的行为就像一个集合,但它具有字典的活动视图)。

dict.values()视图从来不是一个集合,因为不能保证值是唯一的,也不能保证它是可选的(集合的要求)。您还必须在创建值字典视图时预先计算所有散列,这是一个可能非常昂贵的操作。在这种情况下,始终可以使用显式set(dictionary.values())

这使得dict.items()视图(主要是一个集合)在所有值都是可哈斯的情况下产生;这是因为当您从视图创建一个交叉或联合或其他新的集合时,您必须生成一个新的set对象,它要求整个键值对都是可选的;您不能再保证在这种情况下只有键是唯一的。

还请参阅字典视图对象文档。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24830632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档