6

I do not understand the ordering what Python applies from holding sets. For example:

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

The ordering is 'A', 'C', 'B'. Why 'A' is before 'C' (maybe alphabetical order)? What I have to do in order to preserve the adding ordering, i.e. 'C', 'A', 'B'?

Bob
  • 9,583
  • 22
  • 60
  • 69

2 Answers2

6

You cannot have order in sets. and there is no way to tell how Python orders it. Check this answer for alternatives.

Community
  • 1
  • 1
avi
  • 8,686
  • 10
  • 45
  • 81
1

Sets are different than lists. If you want to preserve an order, use a list. For example :

a = []
a.append('C')
a.append('A')
a.append('B')
print a # ['C', 'A', 'B']
FunkySayu
  • 6,876
  • 7
  • 34
  • 57