Python | Encuentra la sublista de longitud máxima en una lista anidada

Dada una lista de listas, escriba un programa Python para encontrar la lista con la longitud máxima. La salida debe tener el formato (list, list_length) .

Ejemplos:

Input : [['A'], ['A', 'B'], ['A', 'B', 'C']]
Output : (['A', 'B', 'C'], 3)

Input : [[1, 2, 3, 9, 4], [5], [3, 8], [2]]
Output : ([1, 2, 3, 9, 4], 5)

 
Analicemos diferentes enfoques para resolver este problema.

Enfoque n.º 1: uso de bucle for (ingenuo)
Este es un método de fuerza bruta en el que iteramos a través de cada elemento de la lista (lista) y encontramos la lista con la longitud máxima. De manera similar, usamos el ciclo for para encontrar la longitud de cada lista y generar la longitud máxima.

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max((x) for x in lst)
    maxLength = max(len(x) for x in lst )
  
    return maxList, maxLength
      
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C']]
print(FindMaxLength(lst))
Producción:

(['A', 'B', 'C'], 3)

 
Enfoque n.º 2: uso map
En este método, usamos la función de mapa de Python para iterar sobre las listas internas para crear una lista de longitudes y luego obtener el máximo con la función max.

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max(lst, key = len)
    maxLength = max(map(len, lst))
      
    return maxList, maxLength
  
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C'], ]
print(FindMaxLength(lst))
Producción:

(['A', 'B', 'C'], 3)

 
Enfoque #3: Usar el lambda operador
Un método más en Python para encontrar la lista de mayor longitud es el operador lambda. Se utiliza para crear objetos de función pequeños, únicos y anónimos en Python. Aquí pasamos una variable i como argumento en la expresión len(i) y encontramos la longitud máxima.

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max(lst, key = lambda i: len(i))
    maxLength = len(maxList)
      
    return maxList, maxLength
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C']]
print(FindMaxLength(lst))
Producción:

(['A', 'B', 'C'], 3)

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 *