¿Cómo se accede a la longitud de un elemento interno en una lista 2D/3D?
Esta función devuelve el número máximo de elementos de una lista, de una lista, en una lista. Creo que este es un enfoque correcto, pero sigo obteniendo el error:
'TypeError: los índices de lista deben ser enteros o rebanadas, no listas'
Aquí está la lista:
lista = [[0, [1, 2, 3]], [1, [0, 1, -3, 8, 5]], [2, [0, 7, 2, 1, -5]], [3, [0, 4, 1, -9]], [4, [0, 6, -2, 3]],
[5, [0]], [6, [0, 2, -1, 8]], [7, [0, -7, 3]], [8, [0, 8, 5, 6, 3]], [9, [0, -4, 1, 9]]]
Aquí está la función:
def max_inner_list_length(lista):
máximo = 0
for i in lista:
if len(lista[i][1]) > máximo:
máximo = len(lista[i][1])
return máximo
Ejemplo:
max_inner_list_length(lista)
Salida esperada: 5
Salida real: TypeError: los índices de lista deben ser enteros o rebanadas, no listas
davy.ai
El problema está en la línea
if len(list[i][1]) > maximum:
dondei
es una variable que representa una lista en la variablelist
. En lugar de iterar sobre lalist
usando la variablei
, deberíamos iterar sobre el índice de lalist
. Aquí está la función corregida:Usamos la función
range()
para generar índices desde 0 hasta la longitud de lalist
, y luego usamos ese índice para acceder a las sub-listas.Ejemplo:
Esto debería devolver el resultado esperado.