Python | Ordenar lista que contiene valores alfanuméricos

Dada una lista que contiene ambos valores alfanuméricos, escriba un programa Python para ordenar la lista dada de tal manera que los valores alfabéticos siempre vengan después de los valores numéricos.

Ejemplos:

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']

Enfoque 1: Usar el método sort()

Para usar el método Python, primero sort()debemos convertir todos los valores de la lista al tipo str . Ahora hay dos métodos para convertir valores en strings.

  • Método #1: Comprensión de listas
    La comprensión de listas de Python se puede usar simplemente para convertir cada elemento de la lista en un tipo de string. Lo ordenamos y dado que todos los valores ahora son de tipo str, cambiamos la lista final para volver a su forma original.

    # Python3 program to Sort list 
    # containing alpha 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', 7, 0, 't']
    print(sort(lst))
    Producción:

    [0, 3, 5, 7, 'e', 'g', 'k', 't']
    
  • Método #2: Usar la función de tecla

    La función clave sirve como clave para la comparación de clasificación, que es igual a str en nuestro caso.

    # Python3 program to Sort list 
    # containing alpha 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))
    Producción:

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

Enfoque 2: ordenado()

Alternativamente, también puede usar la función integrada de Python sorted() para el mismo propósito. La diferencia más simple entre sort() y sorted() es: sort() no devuelve ningún valor, mientras que sorted() devuelve una lista iterable. Ahora hay nuevamente dos formas de usar sorted() .

  • Método #1: Usando la función de tecla

    # Python3 program to Sort list 
    # containing alpha 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))
    Producción:

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

    # Python3 program to Sort list 
    # containing alpha 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))
    Producción:

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

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *