Dividir lista en fragmentos en Python
- Dividir lista en Python en fragmentos usando el método de comprensión de listas
-
Dividir la lista en Python en fragmentos usando el método
itertools
-
Dividir lista en Python en fragmentos usando la función
lambda
-
Dividir lista en Python en fragmentos usando el método
lambda
eislice
-
Dividir lista en Python en fragmentos usando el método
NumPy
- Dividir la lista en fragmentos en Python mediante una función definida por el usuario
Una de las estructuras de datos de Python que puede contener valores o elementos mixtos se llama listas. Este artículo presentará varias formas de dividir una lista en partes. Puede utilizar cualquier ejemplo de código que se ajuste a sus especificaciones.
Dividir lista en Python en fragmentos usando el método de comprensión de listas
Podemos usar la comprensión de listas para dividir una lista de Python en trozos. Es una forma eficaz de encapsular las operaciones para facilitar la comprensión del código.
El código de ejemplo completo se proporciona a continuación.
test_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
n = 3
output = [test_list[i : i + n] for i in range(0, len(test_list), n)]
print(output)
Producción :
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
range(0, len(test_list), n)
devuelve un rango de números que comienzan en 0 y terminan en len(test_list)
con un paso de n
. Por ejemplo, range(0, 10, 3)
devolverá (0, 3, 6, 9)
.
test_list[i:i + n]
obtiene la parte de la lista que comienza en el índice i
y termina exclusivamente en i + n
. El último fragmento de la lista dividida es test_list[9]
, pero los índices calculados test_list[9:12]
no generarán un error sino que serán iguales a test_list[9]
.
Dividir la lista en Python en fragmentos usando el método itertools
Este método proporciona un generador que debe iterarse utilizando un bucle for
. Un generador es una forma eficiente de describir un iterador.
from itertools import zip_longest
test_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
def group_elements(n, iterable, padvalue="x"):
return zip_longest(*[iter(iterable)] * n, fillvalue=padvalue)
for output in group_elements(3, test_list):
print(output)
Producción :
('1', '2', '3')
('4', '5', '6')
('7', '8', '9')
('10', 'x', 'x')
[iter(iterable)]*n
genera un iterador e itera n
veces en la lista. Entonces, izip-longest
realiza un round robin de cada iterador; dado que se trata de un iterador similar, cada una de estas llamadas avanza, lo que da como resultado que cada uno de estos zip-round-robin produzca una tupla de n objetos.
Dividir lista en Python en fragmentos usando la función lambda
Es posible utilizar una función lambda
básica para dividir la lista en un cierto tamaño o en trozos más pequeños. Esta función trabaja en la lista original y la variable de tamaño N, itera sobre todos los elementos de la lista y la divide en trozos de tamaño N.
El código de ejemplo completo se proporciona a continuación:
test_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
x = 3
def final_list(test_list, x):
return [test_list[i : i + x] for i in range(0, len(test_list), x)]
output = final_list(test_list, x)
print("The Final List is:", output)
Producción :
The Final List is: [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
Dividir lista en Python en fragmentos usando el método lambda
e islice
Se puede usar una función lambda
con la función islice
y producir un generador que itera sobre la lista. La función islice
crea un iterador que extrae elementos seleccionados del iterable. Si el inicio es distinto de cero, los elementos iterables se omitirán antes de que se alcance el inicio. Luego, los elementos se devuelven consecutivamente a menos que se establezca un paso más alto que uno que dé como resultado la omisión de elementos.
El código de ejemplo completo se proporciona a continuación:
from itertools import islice
test_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
def group_elements(lst, chunk_size):
lst = iter(lst)
return iter(lambda: tuple(islice(lst, chunk_size)), ())
for new_list in group_elements(test_list, 3):
print(new_list)
Producción :
('1', '2', '3')
('4', '5', '6')
('7', '8', '9')
('10',)
Dividir lista en Python en fragmentos usando el método NumPy
La biblioteca NumPy
también se puede utilizar para dividir la lista en trozos de tamaño N. La función array_split()
dividel array en submatrices de tamaño específico n
.
El código de ejemplo completo se proporciona a continuación:
import numpy
n = numpy.arange(11)
final_list = numpy.array_split(n, 4)
print("The Final List is:", final_list)
La función arange
ordenó los valores de acuerdo con el argumento dado y la función array_split()
produce la lista / subarrays basados en el parámetro dado en ella como parámetro.
Producción :
The Final List is: [array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8]), array([ 9, 10])]
Dividir la lista en fragmentos en Python mediante una función definida por el usuario
Este método iterará sobre la lista y producirá fragmentos consecutivos de tamaño n, donde n se refiere al número en el que se debe implementar una división. En esta función se utiliza una palabra clave yield
que permite detener y restaurar una función a medida que el valor cambia cuando se suspende la ejecución. Éstas son las distinciones importantes de una función normal. Una función normal no puede volver a donde se había quedado. La función se llama Generador cuando usamos una declaración yield
en una función. Un generador produce o devuelve valores y no se puede nombrar como una función simple, sino más bien como iterable, es decir, usando un bucle.
El código de ejemplo completo es el siguiente.
test_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
def split_list(lst, n):
for i in range(0, len(lst), n):
yield lst[i : i + n]
n = 3
output = list(split_list(test_list, n))
print(output)
Producción :
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python