gpt4 book ai didi

python - 散列 frozenset 与 tuple of sorted

转载 作者:行者123 更新时间:2023-12-04 03:55:21 24 4
gpt4 key购买 nike

在 Python 中,给定一组可比较的、可散列的元素 s,散列 frozenset(s)tuple(sorted(s)) 哪个更好?

最佳答案

这取决于你在做什么。创建 frozenset() 比排序 tuple 更快,但是 frozensettuple 占用更多内存。

创建 frozenset 比创建 tuple 更快:

import timeit

import random as rn

x = range(2000)
rn.shuffle(x)
x = tuple(x)

def get_frozen_set(x):
return frozenset(x)

def get_sorted_tuple(x):
return sorted(x)

n = 10000

t1 = timeit.timeit('get_frozen_set(x)', 'from __main__ import x, get_frozen_set', number = n)
print 'create a frozenset:', t1
t2 = timeit.timeit('get_sorted_tuple(x)','from __main__ import x, get_sorted_tuple', number = n)
print 'sort tuple:', t2

结果:

create a frozenset: 0.85803164112
sort tuple: 6.65848886198

虽然区别很大,因为启动tuple很短。对于 n = 20

结果:

create a frozenset: 0.0124568308591
sort tuple: 0.0257906431368

frozenset 占用了更多的 memory ,这是说明 here

frozensettuple , here 之间的查找时间差异非常小

关于python - 散列 frozenset 与 tuple of sorted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14534495/

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