gpt4 book ai didi

python - python set 和 dict "internally"的区别

转载 作者:行者123 更新时间:2023-11-28 22:49:11 25 4
gpt4 key购买 nike

谁能告诉我 set 和 dict 在 python 中的内部实现有何不同?他们在后台使用相同的数据结构吗?

++ 理论上可以用dict来实现集合的功能。

最佳答案

在 CPython 中,集合和字典使用相同的基本数据结构。 Sets 对它的调整略有不同,但它基本上是一个哈希表,就像字典一样。

你可以看看C代码中的实现细节:setobject.cdictobject.c ;实现非常接近; setobject.c 实现最初是作为 dictobject.c 的副本启动的。 dictobject.c有更多的实现注释和跟踪调用,但核心功能的实际实现只是在细节上有所不同。

最明显的区别是哈希表中的键不像字典那样用于引用值,所以 setentry struct只有一个缓存的散列和键,dictentry struct添加一个值指针。

在我们拥有内置的 set 之前,我们拥有 sets module ,一个纯 Python 实现,它使用 dict 对象来跟踪作为键的设置值。在 sets 模块可用之前的 Python 版本中,我们就是这样做的:使用带有键的 dict 对象作为设置值,以跟踪唯一的、无序的值。

关于python - python set 和 dict "internally"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24159713/

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