2014-10-17 142 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