A veces, mientras trabajamos con pares de Python, podemos tener problemas en los que los pares representan a los vecinos y necesitamos calcular los vecinos de cada elemento. Este tipo de problema es bastante común en la programación competitiva y al trabajar con gráficos. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso del bucle
Este es uno de los enfoques que se pueden aplicar para resolver este problema. En esto, asumimos previamente las claves requeridas y construimos el diccionario con listas vacías, e iteramos la lista de pares agregando los valores.
# Python3 code to demonstrate working of # Paired Neighbours to Adjacency Dictionary # Using loop # initializing list test_list = [(1, 2), (4, 5), (1, 3), (3, 4), (5, 6), (6, 2)] # printing original list print("The original list is : " + str(test_list)) # Paired Neighbours to Adjacency Dictionary # Using loop res = {1: [], 2: [], 3: [], 4: [], 5: [], 6: []} for sub in test_list: res[sub[0]].append(sub[1]) res[sub[1]].append(sub[0]) # printing result print("The Neighbours Paired Dictionary : " + str(res))
La lista original es: [(1, 2), (4, 5), (1, 3), (3, 4), (5, 6), (6, 2)]
Diccionario de pares de vecinos: {1: [2, 3], 2: [1, 6], 3: [1, 4], 4: [5, 3], 5: [4, 6], 6: [5, 2]}
Método #2: Usar el defaultdict()
bucle +
La combinación de las funciones anteriores también se puede usar para resolver este problema. En esto, inicializamos el diccionario como conjunto predeterminado. Elimina el problema de la duplicación y también brinda más flexibilidad con respecto a valores de Node más indeterminados.
# Python3 code to demonstrate working of # Paired Neighbours to Adjacency Dictionary # Using defaultdict() + loop from collections import defaultdict # initializing list test_list = [(1, 2), (4, 5), (1, 3), (3, 4), (5, 6), (6, 2)] # printing original list print("The original list is : " + str(test_list)) # Paired Neighbours to Adjacency Dictionary # Using defaultdict() + loop res = defaultdict(set) for sub in test_list: res[sub[0]].add(sub[1]) res[sub[1]].add(sub[0]) # printing result print("The Neighbours Paired Dictionary : " + str(dict(res)))
La lista original es: [(1, 2), (4, 5), (1, 3), (3, 4), (5, 6), (6, 2)]
Diccionario de pares de vecinos: {1: {2, 3}, 2: {1, 6}, 3: {1, 4}, 4: {3, 5}, 5: {4, 6}, 6: {2, 5}}
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