Create Python Dictionary

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

Answers (2)

Pep_8_Guardiola
Pep_8_Guardiola

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

ForceBru
ForceBru

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

Related Questions