A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que tenemos una lista de tuplas como datos y deseamos agrupar todos los elementos que forman una string, es decir, son pares indirectos entre sí o son componentes conectados. Este tipo de problema puede ocurrir en dominios como la programación competitiva. Vamos a discutir cierta forma en que se puede realizar esta tarea.
Entrada : test_list = [(1, 3), (4, 5)]
Salida : []Entrada : test_list = [(1, 3), (3, 5)]
Salida : [{1, 3, 5}]
Método: Usar bucle +set() + intersection()
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, iteramos por todos los elementos y luego por todos los elementos que ocurren después de eso en el ciclo anidado. Se realiza la intersección de elementos, y si algún elemento se encuentra similar, es decir, tamaño >= 0, entonces la tupla se fusiona en una string similar.
# Python3 code to demonstrate working of # Paired elements grouping # Using loop + set() + intersection() # initializing list test_list = [(1, 3), (4, 5), (1, 7), (3, 4), (7, 8)] # printing original list print("The original list is : " + str(test_list)) # Paired elements grouping # Using loop + set() + intersection() res = [] for sub in test_list: idx = test_list.index(sub) sub_list = test_list[idx + 1:] if idx <= len(test_list) - 2: for ele in sub_list: intrsct = set(sub).intersection(set(ele)) if len(intrsct) > 0: res.append(set(sub + ele)) # printing result print("The grouped list : " + str(res))
The original list is : [(1, 3), (4, 5), (1, 7), (3, 4), (7, 8)] The grouped list : [{1, 3, 7}, {1, 3, 4}, {3, 4, 5}, {8, 1, 7}]
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