2014-10-17 143 views
0

我不明白Python从持有集合中应用的顺序。例如:集合中元素的python顺序

visited = set() 
visited.add('C') 
visited.add('A') 
visited.add('B') 
print(set) 

排序是'A', 'C', 'B'。为什么'A'在'C'之前(可能按字母顺序排列)? 为了保持添加顺序,我需要做什么,即'C', 'A', 'B'

+0

https://docs.python.org/2/library/stdtypes.html#set-types-set-frozenset“集合对象是不同可哈希对象的无序集合。” – fredtantini 2014-10-17 08:30:36

+0

可能重复http://stackoverflow.com/questions/1653970/does-python-have-an-ordered-set – Kasramvd 2014-10-17 08:32:24

+0

Set是一个无序的集合。 – 2014-10-17 08:33:21

回答

1

你不能在套订单。并且无法告诉Python如何订购它。检查this答案的替代品。

+0

'frozenset()'工作吗? – 2018-01-08 12:03:53

1

集合与列表不同。如果您想保留订单,请使用列表。 例如:

a = [] 
a.append('C') 
a.append('A') 
a.append('B') 
print a # ['C', 'A', 'B'] 
+0

但现在你可以在列表中放置一个元素两次(这是不可能的) – 2014-10-17 08:36:44