Programa de Python para asignar a cada elemento de la lista un valor igual a su orden de magnitud

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

Deja una respuesta

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