Python | Sort list containing alphanumeric values

Python Methods and Functions

Examples :

  Input:  ['k', 5,' e', 3, 'g', 7, 0,' t']  Output:  [0, 3, 5, 7, 'e',' g', 'k',' t']  Input:  [1, ' c', 3, 2, 'a',' b']  Output:  [1, 2, 3, 'a',' b', 'c'] 

Approach 1: Using the sort () method

To use the Python sort () method we need to first transform all the list values to type str . There are now two methods for converting values ​​to a string.

  • Method # 1: Understanding a List
    Understanding a Python List can simply be used to convert each item in a list string type. We sort it, and since all values ​​are now str, we change the final list to its original form.

    # Python3 list sorting program
    # contains alphabetic and numeric values ​​

     

    def sort (lst):

      lst = [ str (i) for i in lst]

    lst.sort ()

    lst = [ int (i) if i.isdigit () else i for i in lst]

    return lst

      
    # Driver code

    lst = [ 'k' , 5 , 'e' , 3 , 'g' , , 0 , 't' ]

    print ( sort (lst))

    Exit:

     [0, 3, 5, 7, 'e',' g', 'k',' t'] 
  • Method # 2: Usage key function

    The key function serves as a key to compare sorting, which in our case is str .

    # Python3 sorting program list
    # contains alphabetic and numeric values ​​

    def sort (lst):

     

    lst.sort (key = str )

    return lst

     
    # Driver code

    lst = [ 'k' , 5 , 'e' , 3 , 'g' , 7 , 0 , 't' ]

    print (sort (lst))

    Output:

     [0, 3, 5, 7 , 'e',' g', 'k',' t'] 

Approach 2: sorted ()

Alternatively, you can also use Python's built-in sorted () function for the same purpose. The simplest difference between sort () and sorted () is that sort () does not return any value, but sorted ( ) returns an iterative list. Now again there are two ways to use sorted () .

  • Method # 1: Using the key function

    # Python3 sorting list
    # contains alphabetic and numeric values ​​

     

    def sort (lst):

     

    return sorted (lst, key = str )

     
    # Driver code

    lst = [ 'k' , 5 , 'e' , 3 , 'g' , 7 , 0 , 't ' ]

    print (sort (lst ))

    Exit:

     [ 0, 3, 5, 7, 'e',' g', 'k',' t'] 
  • Method # 2: lambda

    # Python3 list sorting program
    # contains alphabetic and numeric values ​​

      

    def sort (lst):

     

    return sorted (lst, key = lambda x: ( isinstance (x, str ), x))

      
    # Driver code

    lst = [ 'k' , 5 , 'e' , 3 , 'g' , 7 , 0 , 't' ]

    print (sort (lst))

    Exit:

     [0, 3, 5, 7, 'e',' g', 'k',' t'] 




Tutorials