Python | Asigne identificadores a cada valor único en una lista

A veces, mientras trabajamos en el dominio del desarrollo web o en la programación competitiva, necesitamos asignar una identificación única a cada uno de los diferentes valores para rastrear su ocurrencia para el conteo o cualquier otro caso de uso requerido. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Usar defaultdict+ lambda + comprensión de lista

La combinación de las funciones anteriores se puede utilizar para realizar esta tarea en particular. La función defaultdict realiza la tarea principal de asignar Ids usando la función lambda, asigna el número actual de claves a cada nueva clave. La lista de comprensión se utiliza en una etapa posterior para formar la lista.

# Python3 code to demonstrate
# assigning ids to values
# using list comprehension + defaultdict + lambda
from collections import defaultdict
  
# initializing list
test_list = [5, 6, 7, 6, 5, 1]
  
# printing original list
print("The original list : " + str(test_list))
  
# using list comprehension + defaultdict + lambda
# assigning ids to values
temp = defaultdict(lambda: len(temp))
res = [temp[ele] for ele in test_list]
  
# print result
print("The ids of assigned values is : " + str(res))
Producción :

The original list : [5, 6, 7, 6, 5, 1]
The ids of assigned values is : [0, 1, 2, 1, 0, 3]

Método #2: Usar OrderedDict.fromkeys() + enumerate()+ comprensión de lista

Este método realiza una tarea similar al método anterior. En esta funciónorderedDict.fromkeys realiza la función para eliminar los duplicados y la función de enumeración nos ayuda a obtener los índices de los valores para mapearlos juntos.

# Python3 code to demonstrate
# assigning ids to values using 
# list comprehension + OrderedDict.fromkeys() + enumerate()
from collections import OrderedDict
  
# initializing list
test_list = [5, 6, 7, 6, 5, 1]
  
# printing original list
print("The original list : " + str(test_list))
  
# using list comprehension + OrderedDict.fromkeys() + enumerate()
# assigning ids to values
res = [{val : key for key, val in enumerate(
           OrderedDict.fromkeys(test_list))}
                 [ele] for ele in test_list]
  
# print result
print("The ids of assigned values is : " + str(res))
Producción :

The original list : [5, 6, 7, 6, 5, 1]
The ids of assigned values is : [0, 1, 2, 1, 0, 3]

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 *