Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I print a sorted Dictionary in Python 3.4.3

I am studying for my GCSE part of which requires me to print a dictionary sorted alphabetically by key and the print should include the associated value.

I have spent hours trying to find the answer to this and have looked at various posts on this forum but most are too complex for my limited knowledge.

I can print alphabeticallycsorted Keys and I can print sorted values but not alphabetically sorted keys with the values attached.

This is my simple test code

class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' } # create dictionary

print(sorted(class1)) # prints sorted Keys
print(sorted(class1.values())) # Prints sorted values

I need to print sorted keys with values - how to do that?

for k,v in class1.items():
    print(k,v)  # prints out in the format I want but not alphabetically sorted
like image 849
PythonNewb Avatar asked Nov 29 '22 23:11

PythonNewb


1 Answers

>>> class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' }
>>> print(sorted(class1.items()))
[('Ethan', '9'), ('Helen', '8'), ('Holly', '6'), ('Ian', '3')]

 

>>> for k,v in sorted(class1.items()):
...     print(k, v)
...
Ethan 9
Helen 8
Holly 6
Ian 3

 

>>> for k,v in sorted(class1.items(), key=lambda p:p[1]):
...     print(k,v)
...
Ian 3
Holly 6
Helen 8
Ethan 9

>>> for k,v in sorted(class1.items(), key=lambda p:p[1], reverse=True):
...     print(k,v)
...
Ethan 9
Helen 8
Holly 6
Ian 3
like image 62
Kevin Avatar answered Dec 05 '22 04:12

Kevin