Python | Sort Python Dictionaries by Key or Value

Prerequisite:

Problem Statement – Here are the major tasks that are needed to be performed.

  1. Create a dictionary and display its keys alphabetically.
  2. Display both the keys and values sorted in alphabetical order by the key.
  3. Same as part (ii), but sorted in alphabetical order by the value.

Approach –
Load the Dictionary and perform the following operations:

  1. First, sort the keys alphabetically using key_value.iterkeys() function.
  2. Second, sort the keys alphabetically using sorted (key_value) function & print the value corresponding to it.
  3. Third, sort the values alphabetically using key_value.iteritems(), key = lambda (k, v) : (v, k))

Let’s try performing the above-mentioned tasks:

  1. Displaying the Keys Alphabetically:

    Examples:

    Input:
    key_value[2] = '64'       
    key_value[1] = '69'
    key_value[4] = '23'
    key_value[5] = '65'
    key_value[6] = '34'
    key_value[3] = '76'
    
    Output:
    1 2 3 4 5 6 
    

    Program:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Function calling
    def dictionairy(): 
     # Declare hash function      
     key_value ={}    
      
    # Initializing value 
     key_value[2] = 56       
     key_value[1] = 2 
     key_value[5] = 12 
     key_value[4] = 24
     key_value[6] = 18      
     key_value[3] = 323 
      
     print ("Task 1:-\n")
     print ("Keys are")
       
     # iterkeys() returns an iterator over the 
     # dictionary’s keys.
     for i in sorted (key_value.keys()) : 
         print(i, end = " ")
      
    def main():
        # function calling
        dictionairy()             
          
    # Main function calling
    if __name__=="__main__":      
        main()

    chevron_right

    
    

    Output:

    Task 1:-
    
    Keys are
    1 2 3 4 5 6
    
  2. Sorting the Keys and Values in Alphabetical Order using the Key.

    Examples:

    Input:
    key_value[2] = '64'       
    key_value[1] = '69'
    key_value[4] = '23'
    key_value[5] = '65'
    key_value[6] = '34'
    key_value[3] = '76'
    
    Output:
    (1, 69) (2, 64) (3, 76) (4, 23) (5, 65) (6, 34)
    

    Program:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # function calling
    def dictionairy(): 
      
     # Declaring the hash function      
     key_value ={}    
       
    # Initialize value 
     key_value[2] = 56       
     key_value[1] = 2 
     key_value[5] = 12 
     key_value[4] = 24
     key_value[6] = 18      
     key_value[3] = 323 
       
     print ("Task 2:-\nKeys and Values sorted in"
                "alphabetical order by the key  ")  
      
     # sorted(key_value) returns an iterator over the 
     # Dictionary’s value sorted in keys.  
     for i in sorted (key_value) :
        print ((i, key_value[i]), end =" ")
      
    def main():
        # function calling
        dictionairy()             
          
    # main function calling
    if __name__=="__main__":     
        main()

    chevron_right

    
    

    Output:

    Task 2:-
    Keys and Values sorted in alphabetical order by the key  
    (1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18)
    
  3. Sorting the Keys and Values in alphabetical using the value

    Examples:

    Input:
    key_value[2] = '64'       
    key_value[1] = '69'
    key_value[4] = '23'
    key_value[5] = '65'
    key_value[6] = '34'
    key_value[3] = '76'
    
    Output:
    (4, 23), (6, 34), (2, 64), (5, 65), (1, 69), (3, 76)
    

    Program:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Function calling
    def dictionairy(): 
      
     # Declaring hash function      
     key_value ={}    
       
    # Initializing the value 
     key_value[2] = 56       
     key_value[1] = 2 
     key_value[5] = 12 
     key_value[4] = 24
     key_value[6] = 18      
     key_value[3] = 323 
       
      
     print ("Task 3:-\nKeys and Values sorted"
       "in alphabetical order by the value")
       
     # Note that it will sort in lexicographical order
     # For mathematical way, change it to float
     print(sorted(key_value.items(), key = 
                 lambda kv:(kv[1], kv[0])))    
       
    def main():
        # function calling
        dictionairy()            
          
    # main function calling
    if __name__=="__main__":      
        main()

    chevron_right

    
    

    Output:

    Task 3:-
    Keys and Values sorted in alphabetical order by the value
    [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)]
    

Learning Outcome:

  • How to handle a dictionary.
  • Dictionary has O(1) search time complexity whereas List has O(n) time complexity. So it is recommended to use the dictionary where ever possible.
  • The best application of dictionary can be seen in Twitter Sentiment Analysis where analysis Twitter sentiments are analysed, using Lexicon approach.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.