关于python里面的set,set之后的集合元素是如何让排列的

RT,看下面的例子,
>>>set('cheeseshop')
set(['c','e','h','o','p','s'])
>>>set('shop')
set(['h','s','o','p'])
>>> set('01234')
set(['1', '0', '3', '2', '4'])
>>> set('1234')
set(['1', '3', '2', '4'])
这个怎么排的啊??

set是无序集合,python不保证其中元素的次序。打印结果取决于其内部存储结构和输出方式。
你打个长的就知道了
>>> set('012345678910')
set(['1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
说明它是按类似二维数组的方式保存的,先把重复的元素剔除,然后把元素按21436587的顺序存进二维数组
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-15
python里面set是定义集合的
集合是非重复的,所以set('cheeseshop')的输出时 cehops
集合是无序的,所以 set('01234')的输出时10324(随机)
改用List列表、或则tuple元组类型就可以了。
第2个回答  2011-03-14
set没有排序,但是list有啊 可以利用list的排序来对set进行排序:
s = set('1234')
l = list(s)
l.sort()
print(l)
第3个回答  推荐于2016-10-16
set没有排序,但是list有啊 可以利用list的排序来对set进行排序:
s = set('1234')
l = list(s)
l.sort()
第4个回答  2011-03-21
Sets 模块提供了构建和处理独立对象的无序集合的类。该模块的通常使用包括成员测试、删除序列中的雍余对象,以及像求交、求并、作差和均差(symmetric difference)这些数学运算

参考资料:http://blog.csdn.net/sharkw/archive/2007/12/14/1937334.aspx

相似回答