Todas las Noticias en Películas, Avances de Películas y Reseñas.

¿Cómo se divide una lista en partes de tamaño uniforme?

Mientras trabajaba con Listas en Python, es posible que haya encontrado un problema en el que necesita dividir la lista en partes de tamaño similar. Ahora, ¿cómo lo haces? ¿Alguna idea? No te preocupes, si respondiste negativamente. Porque aquí vengo con soluciones a este problema. Por lo tanto, no perdamos tiempo y deliberamos; sobre cómo dividir una lista en partes de tamaño uniforme, de inmediato.

¿Cómo se divide una lista en partes de tamaño uniforme?

Puede haber muchas situaciones en las que se le proporcione una lista y necesite dividirla en ciertos índices; para obtener múltiples listas, o si desea crear una tabla/matriz con un número fijo de filas y columnas; donde cada fila de datos se puede visualizar como una lista. Entonces, para comenzar con el tema, veamos algunos ejemplos de buena calidad y las muchas técnicas diferentes; uno por uno para completar este objetivo nuestro.

Tomando la ayuda de la comprensión de la lista

Mientras se trabaja en tareas más simples, la comprensión de listas resulta muy útil. Pero, para una aplicación más grande, usaremos métodos y encapsularemos estas tareas dentro de los métodos. De esta manera, también podremos implementar conceptos orientados a objetos de la manera correcta.

Entonces, veamos uno de esos ejemplos para implementar la comprensión de listas:

ls = [2, 5, 6, 1, 3, 0, 7, 8, 9, 24, 35, 43, 45, 63, 81, 78]
n = 4
out = [ls[i : i+n] for i in range(0, len(ls), n)]
print(out)

Aquí está la salida:

[[2, 5, 6, 1], [3, 0, 7, 8], [9, 24, 35, 43], [45, 63, 81, 78]]

Entonces, vemos que efectivamente la lista de comprensión que escribimos; divide la lista en un fragmento de tamaño uniforme de 4. Por lo tanto, este puede ser un método que puede implementar para su código según sus requisitos y necesidades. Ahora que hemos visto este método de comprensión de listas, pasemos al siguiente método.

Recomendado:  El iPhone 13 Pro podría venir con una pantalla OLED de 120 Hz

Uso de un método definido por el usuario

También puede hacer uso de un método que puede definir para iterar sobre la lista y, por lo tanto, devolver fragmentos consecutivos de tamaño n; donde n se refiere al número que representa el tamaño de la rebanada uniforme de trozos que se va a hacer.

Entonces, tomemos un ejemplo para deliberar más sobre esto:

ls = [2, 5, 6, 1, 3, 0, 7, 8, 9, 24, 35, 43, 45, 63, 81, 78]

def chunks(ls, n): 
       for i in range(0, len(ls), n): 
              yield ls[i : i+n] 

print(list(chunks(ls, 4)))

Aquí está la salida para este código:

[[2, 5, 6, 1], [3, 0, 7, 8], [9, 24, 35, 43], [45, 63, 81, 78]]

Aplicando itertools

Cuando usas el itertools método devuelve un generador que debe pasarse con un bucle for.

ls = [2, 5, 6, 1, 3, 0, 7, 8, 9, 76, 191, 24, 35, 43, 45, 63, 81, 78]

from itertools import zip_longest 
def chunks(n, iterable, padvalue=None): 
        return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue)

for c in chunks(3, ls): 
      print(c)

La salida que obtienes:

(2, 5, 6)
(1, 3, 0)
(7, 8, 9)
(76, 191, 24)
(35, 43, 45)
(63, 81, 78)

¿Quiere ayuda para hacer bucles con Listas en Python?

Implementando las funciones islice y lambda

Una función lambda en Python, cuando se usa junto con el método islice, brinda un generador sobre el cual iterar. ¿Qué hace efectivamente el método islice? Se utiliza para imprimir de forma selectiva (selectiva) valores específicos en un iterable.

Pongamos un ejemplo para ver su implementación:

ls = [2, 5, 6, 1, 3, 0, 7, 8, 9, 24, 35, 43, 45, 63, 81, 78]

from itertools import islice
def chunks(a, size):
    a = iter(a)
    return iter(lambda: tuple(islice(a, size)), ())

for i in chunks(ls, 4):
    print(i) 

Aquí está su salida:

(2, 5, 6, 1)
(3, 0, 7, 8)
(9, 24, 35, 43)
(45, 63, 81, 78)

Aplicar una función lambda

Puede usar una función lambda simple para descomponer los datos en un tamaño específico y dividirlos en una estructura matricial o partes más pequeñas. Entonces, aprendamos este método tomando un ejemplo:

ls = [2, 5, 6, 1, 3, 0, 7, 8, 9, 24, 35, 43, 45, 63, 81, 78]

n = 4
chunks = lambda ls, n: [ls[i : i+n] for i in range(0, len(ls), n)]
chunks(ls, n)

Producción:

[[2, 5, 6, 1], [3, 0, 7, 8], [9, 24, 35, 43], [45, 63, 81, 78]]

LA GENTE DE TODO!! ~~>

Ha visto una gran cantidad de ejemplos y también ha implementado varios métodos para abordar nuestro problema. Por lo tanto, a estas alturas ya ha entendido bastante los diversos métodos; eso lo ayudará a dividir una lista en partes de tamaño uniforme. Puede utilizar cualquier método que considere adecuado o le guste según sus requisitos y necesidades. Si tiene alguna complicación, definitivamente puede ponerla en la sección de comentarios. Con esa nota, hasta la próxima, nos vemos!! Adiós !! :)~~

Recomendado:  CES 2023: La conferencia de prensa de Qualcomm promueve el crecimiento en cuatro sectores tecnológicos principales

** :::::: ** ::))::((~~>>

Tabla de Contenido