- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Python 中,给定一组可比较的、可散列的元素 s
,散列 frozenset(s)
或 tuple(sorted(s)) 哪个更好?
。
最佳答案
这取决于你在做什么。创建 frozenset()
比排序 tuple
更快,但是 frozenset
比 tuple
占用更多内存。
创建 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 。
frozenset
和 tuple
, here 之间的查找时间差异非常小
关于python - 散列 frozenset 与 tuple of sorted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14534495/
我的 frozenset 输出看起来像这样: 下面的数据只是一个例子。总的来说,我希望数据采用这种格式: 对于 double : 项目项目置信度 对于三元组: 项目项目项目置信度 double : [
考虑以下脚本: # multipleSmallFrozensets is a list of 7 frozensets of differenet number of string objects m
我想将数据框转换为卡住集并将数据框列保留在卡住集中。 例子 x=pd.DataFrame(data=dict(sample=["A","B","C"],lane=[1,1,2])) >>> x
我的理解是,对需要包含可哈希对象的两个不同的 frozensets(不可变的 Python 集)进行哈希处理应该会导致两个不同的哈希值。为什么我会得到以下两个不同 frozenset 的输出? In
请给我一些简单的例子,说明何时使用 frozenset 是帮助我更好地理解这个概念的最佳选择。 最佳答案 frozenset() 对象可以用作字典键和值 inside set() 和 frozense
当我尝试在任何上下文中导入 hashlib 时,它会抛出此错误: File "", line 1, in File "build/bdist.macosx-10.11-intel/egg/has
我刚刚在卡住集上尝试了增广赋值,结果让我吃惊: >>> x = frozenset(['foo', 'bar', 'baz']) >>> x frozenset({'foo', 'baz', 'bar
对于可迭代对象,子类化 frozenset 和 set 似乎并不相同。尝试运行以下 MWE: class MonFrozenSet(frozenset): def __new__(self,
我有一个脚本,它使用由两个变量组成的键对字典进行多次调用。我知道我的程序将以相反的顺序再次遇到这两个变量,这使得将 key 存储为元组变得可行。 (创建行和列具有相同标签的矩阵) 因此,我想知道使用元
比如我有一个卡住的集合 [frozenset({'a', 'c,'}), frozenset({'h,', 'a,'})] 我想把它转换成一个普通的列表 [['a', 'c,'],['a,', 'd,
我想从 frozenset 中获取一个元素(当然不修改它,因为 frozenset 是不可变的)。到目前为止我找到的最佳解决方案是: s = frozenset(['a']) iter(s).next
我一直在研究 Python 3.10 中的结构模式匹配,但不知道如何让它匹配一个集合。例如我试过: a = {1,2,3} match a: case set(1,2,3):
我一直在研究 Python 3.10 中的结构模式匹配,但不知道如何让它匹配一个集合。例如我试过: a = {1,2,3} match a: case set(1,2,3):
当我在 Spyder 中打开规则时,将 apriori 算法应用于市场购物篮优化数据集后,显示 frozenset 对象,而不是显示 frozenset({'light Cream', 'chicke
我试图在 frozenset 中找到一个子字符串,但是我有点无能为力。 我的数据结构是一个 pandas.dataframe(它来自 mlxtend 包中的 association_rules,如果你
在 CPython 中如何实现 frozenset 相等性?特别是,我想知道 fronzenset 中的各个元素如何相互比较以及它们的总时间复杂度。 我看了一下set and frozenset di
我目前有这段代码,它检查数组中的所有元素是否相同。如果是这种情况,则返回 true def all_equal(lst): """ >>> all_equal([1,1,1,1,1,1,1])
我正在尝试从一本使用 Python 的书中学习先验机器学习算法,作为学习的一部分,我目前遇到以下问题: 以下代码结构似乎工作正常: Ck = [[1], [2], [3], [4], [5]]
有人可以解释以下行为吗: class derivedset1(frozenset): def __new__(cls,*args): return frozenset.__ne
我想制作一对两个元素。我不关心元素的顺序,所以我使用frozenset。 我可以想到以下两种方法来迭代从frozenset返回的元素。就没有更高级的方法吗?提前致谢。 pair = frozenset
我是一名优秀的程序员,十分优秀!