A veces, mientras trabajamos con Python, podemos tener un problema en el que necesitamos ordenar una lista particular que tiene tipos de datos mixtos. Que contiene números enteros y strings y debemos ordenar cada uno de ellos en consecuencia. Analicemos ciertas formas en que se puede resolver este problema.
Método #1: Usar sort()
+ comparador
Este problema se puede resolver utilizando la funcionalidad de clasificación proporcionada por Python. Podemos construir nuestro propio comparador personalizado para completar la tarea de tipo mixto.
# Python3 code to demonstrate working of # Sort Mixed List # using sort() + comparator # comparator function for sort def mixs(num): try: ele = int(num) return (0, ele, '') except ValueError: return (1, num, '') # initialize list test_list = [4, 'gfg', 2, 'best', 'is', 3] # printing original list print("The original list : " + str(test_list)) # Sort Mixed List # using sort() + comparator test_list.sort(key = mixs) # printing result print("List after mixed sorting : " + str(test_list))
The original list : [4, 'gfg', 2, 'best', 'is', 3] List after mixed sorting : [2, 3, 4, 'best', 'gfg', 'is']
Método #2: Usarsorted() + key + lambda + isdigit()
La combinación de las funcionalidades anteriores también se puede utilizar para lograr una solución a este problema. En esto, simplemente ordenamos la lista usando sorted() usando la funcionalidad clave usando la función lambda para segregar dígitos usando isdigit().
# Python3 code to demonstrate working of # Sort Mixed List # using sorted() + key + lambda + isdigit() # initialize list test_list = ['4', 'gfg', '2', 'best', 'is', '3'] # printing original list print("The original list : " + str(test_list)) # Sort Mixed List # using sorted() + key + lambda + isdigit() res = sorted(test_list, key = lambda ele: (0, int(ele)) if ele.isdigit() else (1, ele)) # printing result print("List after mixed sorting : " + str(res))
The original list : ['4', 'gfg', '2', 'best', 'is', '3'] List after mixed sorting : ['2', '3', '4', 'best', 'gfg', 'is']
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA