Python | Encuentra el elemento más común en una lista 2D

Dada una lista 2D (puede o no tener la misma longitud), escriba un programa en Python para encontrar el elemento más común en la lista 2D dada.

Ejemplos:

Input : [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
Output : 10

Input : [['geeks', 'wins'], ['techie', 'wins']]
Output : wins

Enfoque n. ° 1: uso de max()la función

El primer enfoque de Pythonic es usar el método max() de Python. Primero aplanamos la lista 2D y luego simplemente aplicamos el método max() para encontrar el elemento máximo que ocurre entre todos los elementos.

# Python3 program to find most 
# common element in a 2D list
  
def mostCommon(lst):
    flatList = [el for sublist in lst for el in sublist]
    return max(flatList, key = flatList.count)
              
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
Producción:

10

Hay otro método para aplanar la lista, es decir, chain.from_iterable()que da lugar a un enfoque alternativo.

# Python3 program to find most 
# common element in a 2D list
from itertools import chain
  
def mostCommon(lst):
    flatList = list(chain.from_iterable(lst))
    return max(flatList, key=flatList.count)
  
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
Producción:

10

 
Enfoque #2: Usar most_common()desde el módulo de colecciones

most_common() se usa para producir una secuencia de los n valores de entrada más frecuentes. Por lo tanto, simplemente aplanamos la lista y encontramos el elemento más común utilizando el método mencionado anteriormente.

# Python3 program to find most 
# common element in a 2D list
from itertools import chain
from collections import Counter
  
def mostCommon(lst):
    flatList = chain.from_iterable(lst)
    return Counter(flatList).most_common(1)[0][0]
              
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
Producción:

10

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal 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 *