Dada una lista, la tarea es escribir un programa en Python para asignar a cada elemento un valor igual a su orden de magnitud.
Entrada: test_list = [8, 3, 5, 8, 1, 5, 4]
Salida: [4, 1, 3, 4, 0, 3, 2]
Explicación: 8 es el quinto máximo, por lo tanto, se le asigna 4 [a partir del índice 0].
Entrada: test_list = [3, 2, 0]
Salida: [2, 1, 0]
Explicación: 3 es el 3er máximo ya que se asigna 2.
Método 1: Usar set() + zip() + dict() + comprensión de lista
En esto, realizamos la tarea de mapear el índice ordenado de la lista convertida configurada a valores usando zip(), y luego convertimos al diccionario de valor mapeado a valores. Luego, la comprensión de listas se usa para ordenar en listas.
Python3
# Python3 code to demonstrate working of # Relative Size Ordering # Using set() + zip() + sorted() + dict() + list comprehension # initializing list test_list = [8, 3, 5, 8, 1, 5, 4] # printing original list print("The original list is : " + str(test_list)) # assigning order to each value ord_dict = dict(zip(list(set(test_list)), range(len(set(test_list))))) # mapping element with ordered value res = [ord_dict[ele] for ele in test_list] # printing result print("Relative size ordered list : " + str(res))
Producción:
The original list is : [8, 3, 5, 8, 1, 5, 4] Relative size ordered list : [4, 1, 3, 4, 0, 3, 2]
Método 2: Usar sorted() + set() + index() + comprensión de lista
En esto, realizamos la tarea de conversión para configurar y luego ordenar, el mapeo de índices para ordenar se realiza usando index() y comprensión de listas.
Python3
# Python3 code to demonstrate working of # Relative Size Ordering # Using sorted() + set() + index() + list comprehension # initializing list test_list = [8, 3, 5, 8, 1, 5, 4] # printing original list print("The original list is : " + str(test_list)) # getting order ord_dict = list(set(test_list)) # mapping index res = [ord_dict.index(ele) for ele in test_list] # printing result print("Relative size ordered list : " + str(res))
Producción:
The original list is : [8, 3, 5, 8, 1, 5, 4] Relative size ordered list : [4, 1, 3, 4, 0, 3, 2]
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