Reputation: 21
a_lst = list()
b_lst = list()
tmp = list()
c_dct = dict()
while True:
a = raw_input("a=")
a_lst.append(a)
b = raw_input("b=")
b_lst.append(b)
if a == "end":
break
a_lst.remove('end')
print a_lst
print b_lst
for i in range(len(a_lst)):
c_dct[a_lst[i]] = b_lst[i]
print c_dct
In this code, I combine 2 lists to create the dictionary. In the result, the dictionary is not the same position as the input. For example,
c_dct = {'q': 'w', 'e': 'r', 'o': 'p', '1': '2', '3': '4', '5': '6', 't': 'y', '7': '8', '9': '0', 'u': 'i'}
instead of
c_dct = {'1': '2', '3': '4', '5': '6','7': '8', '9': '0','q': 'w', 'e': 'r','t': 'y','u': 'i','o': 'p'}
What is going on the code? How to slove this problem? Thank You very much!
Upvotes: 2
Views: 74
Reputation: 5252
Dictionaries do not maintain order by default. If you need an ordered dictionary, you can use the following:
from collections import OrderedDict
Take a look at the documentation
Upvotes: 6
Reputation: 44906
Dictionaries are unordered by design. So, everything is OK and you can't create a perfectly ordered dictionary.
Here is a quote from the Python documentation (section 5.5):
It is best to think of a dictionary as an unordered set of key: value pairs, with the requirement that the keys are unique (within one dictionary).
Upvotes: 5