Python 3.7 引入了一种新的 dict 实现,称为 "compact dict"
▥Python
𝄐 0
python的dict用法,python dict.add,python中dict.keys,python3 dict操作,python dict.update,python中dict
Python 3.7 引入了一种新的 dict 实现,称为 "compact dict"。这种实现使用更紧凑的内存布局来存储字典,从而提高了性能并减少了内存使用。
在旧的 dict 实现中,每个字典都包含一个 entry 数组和一个 table 数组。entry 数组存储所有的字典项,而 table 数组用于查找键的索引。因此,即使字典只包含少量的键值对,也会分配大量的内存空间。
而在新的 dict 实现中,只有在字典大小超过小阈值(默认为8)时才分配 table 数组。在字典较小的情况下,字典项直接存储在连续的内存块中,而不需要额外的索引表。这样可以大大减少内存占用,并提高查询性能。
下面是一个简单的示例,演示如何创建并使用 compact dict:
python
# 创建一个新的字典
my_dict = {"apple": 1, "banana": 2, "orange": 3}
# 添加一个新的键值对
my_dict["pear"] = 4
# 删除一个键值对
del my_dict["banana"]
# 访问一个键对应的值
print(my_dict["apple"])
在这个示例中,我们创建了一个包含三个键值对的字典。然后,我们添加了一个新的键值对,并删除了一个现有的键值对。最后,我们访问了一个键对应的值,并将其打印出来。这个示例和以前版本的 Python 中使用 dict 的方法是相同的。但在背后,Python 3.7 使用了更紧凑的内存布局来实现这些操作。
Python 3.7 引入了一种新的 dict 实现,称为 "compact dict"。这种实现使用更紧凑的内存布局来存储字典,从而提高了性能并减少了内存使用。
在旧的 dict 实现中,每个字典都包含一个 entry 数组和一个 table 数组。entry 数组存储所有的字典项,而 table 数组用于查找键的索引。因此,即使字典只包含少量的键值对,也会分配大量的内存空间。
而在新的 dict 实现中,只有在字典大小超过小阈值(默认为8)时才分配 table 数组。在字典较小的情况下,字典项直接存储在连续的内存块中,而不需要额外的索引表。这样可以大大减少内存占用,并提高查询性能。
下面是一个简单的示例,演示如何创建并使用 compact dict:
python
# 创建一个新的字典
my_dict = {"apple": 1, "banana": 2, "orange": 3}
# 添加一个新的键值对
my_dict["pear"] = 4
# 删除一个键值对
del my_dict["banana"]
# 访问一个键对应的值
print(my_dict["apple"])
在这个示例中,我们创建了一个包含三个键值对的字典。然后,我们添加了一个新的键值对,并删除了一个现有的键值对。最后,我们访问了一个键对应的值,并将其打印出来。这个示例和以前版本的 Python 中使用 dict 的方法是相同的。但在背后,Python 3.7 使用了更紧凑的内存布局来实现这些操作。
本文地址:
/show-275034.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。