我set
在python中进行实验,虽然我了解它是未排序的,但基于哈希值,但我发现奇怪的是,它在Python 2和3中都自动对这些数字进行了排序:
>>> list(set([2,1,3,6,5,3,6,4]))
[1, 2, 3, 4, 5, 6]
>>> list(set([2,1,3,6,5,3,6,4,0,7]))
[0, 1, 2, 3, 4, 5, 6, 7]
我用谷歌搜索了一段时间,但没有找到结合这两个功能的答案。
没有,这是一个例子
In [2]: list(set([1,9,5,10]))
Out[2]: [1, 10, 5, 9]
另外,从文档中获取:https : //docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
集合对象是不同的可哈希对象的无序集合。
有时您看到排序后的输出的原因取决于的hash
计算方式,有时取决于所使用的REPL,并且此行为在此答案中得到了很好的描述。
例如,对于ipython
,该组被印刷的方式,改变当我们使doctest_mode,禁用pretty-printing
的ipython
In [1]: set([1,6,8,4])
Out[1]: {1, 4, 6, 8}
In [2]: %doctest_mode
Exception reporting mode: Plain
Doctest mode is: ON
>>> set([1,6,8,4])
{8, 1, 4, 6}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句