gpt4 book ai didi

python - 集合和 View 之间的区别

转载 作者:行者123 更新时间:2023-12-01 05:06:53 25 4
gpt4 key购买 nike

我学习Python大约一个多月了,我遇到了关于 View 和集合的讨论。我正在使用的《学习 Python》一书说 View 是可迭代的,并且其对象的顺序与字典的顺序相同,但 View 也支持集合操作。

在我看来,他们可以做所有套装能做的事情。它看起来像鸭子,叫声像鸭子,并且允许像鸭子一样进行集合操作。为什么集合和 View 是不同类型的对象?

此外,我搜索了“Set View Python Difference”以查找重复的问题,但没有找到任何问题。

最佳答案

只有 dict.keys() 字典 View 始终是一个集合(就其行为而言就像一个集合,但具有字典的实时 View )。

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

剩下的就是 dict.items() View ,它大部分是一个集合,前提是所有值都是可哈希的;这是因为当您从 View 创建交集或并集或其他新集合时,您必须生成一个新的集合对象,这要求整个键值对是可散列;在这种情况下,您不能再保证只有键是唯一的。

另请参阅Dictionary View Objects文档。

关于python - 集合和 View 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com