Programa de Python para encontrar el conjunto de elementos más comunes

Dada una lista de conjuntos, la tarea es escribir un programa de Python para comparar elementos con el conjunto de argumentos y devolver uno con el máximo de elementos coincidentes.

Ejemplos:

Entrada: test_list = [{4, 3, 5, 2}, {8, 4, 7, 2}, {1, 2, 3, 4}, {9, 5, 3, 7}], arg_set = {9 , 6, 5, 3}

Salida: {9, 3, 5, 7}

Explicación: el conjunto resultante tiene el máximo de elementos coincidentes.

Entrada: test_list = [{4, 3, 5, 2}, {8, 4, 7, 2}, {1, 2, 3, 4}, {9, 5, 3, 7}], arg_set = {4 , 6, 5, 3}

Salida: {2, 3, 4, 5}

Explicación: el conjunto resultante tiene el máximo de elementos coincidentes.

Método 1: usando loop + set.intersection()

En esto, realizamos la tarea de obtener todos los elementos comunes con el conjunto de argumentos usando la intersection(), y obtenemos su longitud usando len(), y la longitud máxima y el conjunto se comparan y actualizan durante la iteración.

Python3

# Python3 code to demonstrate working of
# Most common elements set
# Using loop + intersection()
  
# initializing list
test_list = [{4, 3, 5, 2}, {8, 4, 7, 2},
             {1, 2, 3, 4}, {9, 5, 3, 7}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing arg_set
arg_set = {9, 6, 5, 3}
  
res = set()
max_len = 0
  
for sub in test_list:
      
    # updating max value on occurrence
    if len(sub.intersection(arg_set)) > max_len:
        max_len = len(sub.intersection(arg_set))
        res = sub
  
# printing result
print("Max Set intersection : " + str(res))

Producción:

The original list is : [{2, 3, 4, 5}, {8, 2, 4, 7}, {1, 2, 3, 4}, {9, 3, 5, 7}]
Max Set intersection : {9, 3, 5, 7}

Método 2: usar max() + lista de comprensión + intersection()

En esto, el paso inicial es verificar las longitudes de todos los resultados de conjuntos intersecados y obtener el máximo usando max(). A continuación, se extrae la tarea de establecer qué coincidencias con la longitud requerida.

Python3

# Python3 code to demonstrate working of
# Most common elements set
# Using loop + intersection()
  
# initializing list
test_list = [{4, 3, 5, 2}, {8, 4, 7, 2},
             {1, 2, 3, 4}, {9, 5, 3, 7}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing arg_set
arg_set = {9, 6, 5, 3}
  
# getting maximum length 
max_len = max(len(sub.intersection(arg_set)) for sub in test_list)
  
# getting element matching length
res = [sub for sub in test_list if len(sub.intersection(arg_set)) == max_len][0]
  
# printing result
print("Set intersection : " + str(res))

Producción:

The original list is : [{2, 3, 4, 5}, {8, 2, 4, 7}, {1, 2, 3, 4}, {9, 3, 5, 7}]
Max Set intersection : {9, 3, 5, 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

Deja una respuesta

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