A veces, mientras trabajamos con Python, podemos encontrarnos con un problema en el que tenemos datos en forma de lista de tuplas, y lo que pretendemos es categorizarlos en el diccionario con una lista de valores de tuplas. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar el setdefault()
bucle +
Esta tarea se puede realizar fácilmente usando setdefault()
. En esto, simplemente tomamos el par de tupla clave y valor por iteración y setdafault()
se usa para asignar valor a la clave correspondiente del diccionario.
# Python3 code to demonstrate working of # Categorize tuple values into dictionary value list # Using setdefault() + loop # Initialize list of tuples test_list = [(1, 3), (1, 4), (2, 3), (3, 2), (5, 3), (6, 4)] # printing original list print("The original list : " + str(test_list)) # Using setdefault() + loop # Categorize tuple values into dictionary value list res = {} for i, j in test_list: res.setdefault(j, []).append(i) # printing result print("The dictionary converted from tuple list : " + str(res))
La lista original: [(1, 3), (1, 4), (2, 3), (3, 2), (5, 3), (6, 4)]
El diccionario convertido de la lista de tuplas: {2 : [3], 3: [1, 2, 5], 4: [1, 6]}
Método n.º 2: usar dict()
+ comprensión de listas +frozenset()
La combinación de los métodos anteriores se puede usar para realizar esta tarea en particular. En esto, los cálculos lógicos se realizan en comprensión con la ayuda de frozenset()
y el contenedor se convierte en diccionario usando dict()
.
# Python3 code to demonstrate working of # Categorize tuple values into dictionary value list # Using dict() + list comprehension + frozenset() # Initialize list of tuples test_list = [(1, 3), (1, 4), (2, 3), (3, 2), (5, 3), (6, 4)] # printing original list print("The original list : " + str(test_list)) # Using dict() + list comprehension + frozenset() # Categorize tuple values into dictionary value list res = dict((key, [i[0] for i in test_list if i[1] == key]) for key in frozenset(j[1] for j in test_list)) # printing result print("The dictionary converted from tuple list : " + str(res))
La lista original: [(1, 3), (1, 4), (2, 3), (3, 2), (5, 3), (6, 4)]
El diccionario convertido de la lista de tuplas: {2 : [3], 3: [1, 2, 5], 4: [1, 6]}
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