Back

Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Python by (12.7k points)

I am attempting to figure a sorted dictionary. But the order for the items among mydict and orddict doesn't appear to change.

from collections import OrderedDict

mydict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

orddict = OrderedDict(mydict)

print(mydict, orddict)

# print items in mydict:

print('mydict')

for k, v in mydict.items():

    print(k, v)

print('ordereddict')

# print items in ordered dictionary

for k, v in orddict.items():

    print(k, v)

# print the dictionary keys

# for key in mydict.keys():

#     print(key)

#  print the dictionary values

# for value in mydict.values():

#     print(value)

1 Answer

0 votes
by (26.4k points)

An OrderedDict preserves components were inserted: 

>>> od = OrderedDict()

>>> od['c'] = 1

>>> od['b'] = 2

>>> od['a'] = 3

>>> od.items()

[('c', 1), ('b', 2), ('a', 3)]

>>> d = {}

>>> d['c'] = 1

>>> d['b'] = 2

>>> d['a'] = 3

>>> d.items()

[('a', 3), ('c', 1), ('b', 2)]

So an OrderedDict doesn't structure the elements for you, it safeguards the orders you give it. 

On the off chance that you need to "sort" a dictionary, you most likely need

>>> sorted(d.items())

[('a', 1), ('b', 2), ('c', 3)]

Want to become a expert in python? Join the python course fast!

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

28.4k questions

29.7k answers

500 comments

94.6k users

Browse Categories

...