En Python, dividir una lista en sublistas según un valor particular. La idea es recorrer la lista original y agrupar elementos en sublistas cada vez que se encuentre el valor especificado. A menudo es necesario manipular y procesar listas, especialmente cuando se trata de grandes cantidades de datos. Una operación frecuente es dividir una lista en varias sublistas según un valor específico. Cuando desee combinar componentes o analizar diferentes subconjuntos de datos, este procedimiento puede resultar útil.
Formas de dividir listas en listas según la condición
Estos son los diferentes métodos que podemos utilizar para dividir listas en listas según la condición dada.
- Usando iteración simple
- Usando la comprensión de listas
- Usando bucles for
- Usando recursividad
- Usando Itertools
- Usando NumPy
Lista dividida en Python usando iteración
En Pitón , dividiremos una lista en listas por valor particular usando iteración simple . El código inicializa una lista y un valor particular. Luego divide la lista en sublistas según el valor particular iterando sobre cada elemento de la lista.
Python3
test_list> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> print> (> 'The original list : '> +> str> (test_list))> particular_value> => 5> result> => []> temp_list> => []> for> i> in> test_list:> > if> i> => => particular_value:> > temp_list.append(i)> > result.append(temp_list)> > temp_list> => []> > else> :> > temp_list.append(i)> result.append(temp_list)> print> (> 'The list after splitting by a value : '> +> str> (result))> |
número del alfabeto
>
>
Producción
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]>
Divida una lista de Python en fragmentos mediante la comprensión de listas
En Python, dividiremos una lista en listas por valor particular usando Comprensión de listas . Este problema se puede resolver en dos partes, en la primera parte obtenemos la lista de índice mediante la cual se debe realizar la división usando enumerar función. Y luego podemos unir los valores según los índices usando cremallera y lista de corte.
Python3
test_list> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> print> (> 'The original list : '> +> str> (test_list))> # using list comprehension Split list into lists by particular value> size> => len> (test_list)> idx_list> => [idx> +> 1> for> idx, val> in> > enumerate> (test_list)> if> val> => => 5> ]> res> => [test_list[i: j]> for> i, j> in> > zip> ([> 0> ]> +> idx_list, idx_list> +> > ([size]> if> idx_list[> -> 1> ] !> => size> else> []))]> print> (> 'The list after splitting by a value : '> +> str> (res))> |
>
>
programa c para comparar cadenas
Producción
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]>
Lista dividida en Python usando For Loops
En Python, dividiremos una lista en listas por valor particular usando en bucle s. El código convierte el listado original en una representación de cadena y reemplaza el precio particular con un delimitador (*). Luego divide el cambio cadena en el delimitador para adquirir subcadenas.
Python3
test_list> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> print> (> 'The original list : '> +> str> (test_list))> x> => list> (> map> (> str> , test_list))> x> => ' '> .join(x)> x> => x.replace(> '5'> ,> '5*'> )> y> => x.split(> '*'> )> res> => []> for> i> in> y:> > i> => i.strip()> > i> => i.split(> ' '> )> > b> => []> > for> j> in> i:> > b.append(> int> (j))> > res.append(b)> print> (> 'The list after splitting by a value : '> +> str> (res))> |
en vez de
>
>
Producción
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]>
Dividir una lista en varias listas usando recursividad
En Python, dividiremos una lista en listas por valor particular usando recursividad . El código define un recursivo. función llamado split_list_recursive que divide una lista determinada en sublistas cada vez que ocurre un valor particular. Utiliza recursividad y dos listas temporales (resultado y temp_list) para almacenar las sublistas resultantes.
Python3
def> split_list_recursive(test_list, result, temp_list, particular_value):> > if> not> test_list:> > result.append(temp_list)> > return> > if> test_list[> 0> ]> => => particular_value:> > result.append(temp_list> +> [particular_value])> > split_list_recursive(test_list[> 1> :], result, [], particular_value)> > else> :> > split_list_recursive(test_list[> 1> :],> > result,> > temp_list> +> [test_list[> 0> ]],> > particular_value)> test_list> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> particular_value> => 5> result> => []> print> (> 'The original list:'> , test_list)> split_list_recursive(test_list, result, [], particular_value)> print> (> 'The list after splitting by value:'> , result)> |
>
>
Producción
The original list: [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by value: [[1, 4, 5], [6, 4, 5], [6, 5], [4]]>
Lista dividida en Python usando Itertools
En Python, dividiremos una lista en listas por valor particular usando herramientas iterativas . El código define una función llamada split_list que toma una lista y un valor como entrada. Utiliza el itertools.groupby() función para agrupar elementos consecutivos en el lista en función de si son iguales al valor dado.
Python3
método java tostring
import> itertools> def> split_list(lst, val):> > return> [> list> (group)> for> k,> > group> in> > itertools.groupby(lst,> lambda> x: x> => => val)> if> not> k]> original_lst> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> split_lst> => split_list(original_lst,> 6> )> print> (> 'The original list:'> , original_lst)> print> (> 'The list after splitting by a value:'> , split_lst)> |
>
comando chown
>
Producción
The original list: [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value: [[1, 4, 5], [4, 5], [5, 4]]>
Lista dividida en Python usando NumPy
En Python, dividiremos una lista en liza por valor particular usando Numpy. El código toma una lista y un valor particular como entrada. Luego convierte la lista en una NumPy matriz y encuentra los índices donde ocurre el valor particular.
Python3
import> numpy as np> test_list> => [> 1> ,> 4> ,> 5> ,> 6> ,> 4> ,> 5> ,> 6> ,> 5> ,> 4> ]> particular_value> => 5> arr> => np.array(test_list)> idx> => np.where(arr> => => particular_value)[> 0> ]> subarrays> => np.split(arr, idx> +> 1> )> result> => [subarray.tolist()> for> subarray> in> subarrays> if> len> (subarray)>> 0> ]> print> (> 'The original list:'> , test_list)> print> (> 'The list after splitting by a value:'> , result)> |
>
>
Producción
The original list: [1, 4, 5, 6, 4, 5, 6, 5, 4] The list after splitting by a value: [[1, 4, 5], [6, 4, 5], [6, 5], [4]>