gpt4 book ai didi

python - Python 中的二维与一维字典效率

转载 作者:太空狗 更新时间:2023-10-30 01:03:14 24 4
gpt4 key购买 nike

什么在内存和速度方面更有效率

d[(first,second)]

d[第一][第二],

d 是元组字典还是字典?

最佳答案

这是一些非常基本的测试数据,表明对于一个非常人为的示例(使用数字作为键存储“a”一百万次),使用 2 个字典要快得多。

$ python -m timeit 'd = {i:{j:"a" for j in range(1000)} for i in range(1000)};a = [d[i][j] for j in range(1000) for i in range(1000)];'
10 loops, best of 3: 316 msec per loop
$ python -m timeit 'd = {(i, j):"a" for j in range(1000) for i in range(1000)};a = [d[i, j] for j in range(1000) for i in range(1000)];'
10 loops, best of 3: 970 msec per loop

当然,这些测试并不一定意味着什么,具体取决于您要执行的操作。确定要存储的内容,然后进行测试。

更多数据:

$ python -m timeit 'a = [(hash(i), hash(j)) for i in range(1000) for j in range(1000)]'
10 loops, best of 3: 304 msec per loop
$ python -m timeit 'a = [hash((i, j)) for i in range(1000) for j in range(1000)]'
10 loops, best of 3: 172 msec per loop
$ python -m timeit 'd = {i:{j:"a" for j in range(1000)} for i in range(1000)}'
10 loops, best of 3: 101 msec per loop
$ python -m timeit 'd = {(i, j):"a" for j in range(1000) for i in range(1000)}'
10 loops, best of 3: 645 msec per loop

再一次,这显然代表现实世界的使用,但在我看来,用这样的元组构建字典的成本是巨大的,这就是字典中的字典胜出。这让我感到惊讶,我期待完全不同的结果。当我有时间的时候,我将不得不尝试更多的东西。

关于python - Python 中的二维与一维字典效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182841/

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