set的输出结果是按什么自动排序的
来源:4-5 set 集合

Di八哥
2017-12-16
在IDLE里,如输入{1,2,"a","b",4},按回车后会输出{1, 2, 'b', 4, 'a'},如输入{"a","b","x","c"}的时候,回车会输出{'x', 'b', 'c', 'a'},但输入{1,5,4,7,3},按回车会输出{1, 3, 4, 5, 7}
写回答
1回答
-
set是无序集合,不会自动排序的
如果你非要理解它的原理,你可以看下知乎大神的回答
https://www.zhihu.com/question/38237135
python中的“无序”set是和其他用平衡二叉树实现的set(如c++中用红黑树实现的set和python中的orderedset)相对而言的。
基于平衡二叉树的set存取操作都是O(lgn)的时间,但是由于二叉搜索树的特点,可以很轻松的找到任意节点的前驱和后继节点,所以算是“有序”的。
而python中的set基于哈希表实现,存取时间可看做O(1),但是没有办法高效的完成顺序相关的操作(比如找前驱后继,最大最小值等等),所以认为是“无序”的。
作者:黄立夫
链接:https://www.zhihu.com/question/38237135/answer/75502166
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。012017-12-19
相似问题
集合中的无序问题
回答 1
关系运算符的没有讲到的一些问题
回答 2