A Python, per dividir una llista en subllistes basades en un valor particular. La idea és recórrer la llista original i agrupar els elements en subllistes sempre que es trobi el valor especificat. Sovint és necessari manipular i processar llistes, especialment quan es tracta de grans quantitats de dades. Una operació freqüent és dividir una llista en diverses subllistes segons un valor específic. Quan voleu combinar components o analitzar diferents subconjunts de dades, aquest procediment pot ser útil.
Maneres de dividir llistes en llistes en funció de les condicions
Aquests són els diferents mètodes que podem utilitzar per dividir llistes en llistes en funció de la condició donada.
- Ús d'iteració simple
- Ús de la comprensió de llistes
- S'utilitza for loops
- Ús de la recursència
- Utilitzant Itertools
- Utilitzant NumPy
Dividiu la llista a Python mitjançant la iteració
En Python , dividirem una llista en llistes per valor particular utilitzant Simple iteració . El codi inicialitza una llista i un valor particular. A continuació, divideix la llista en subllistes en funció del valor particular iterant sobre cada element de la llista.
Python 3
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))> |
quina és la mida de la pantalla del meu ordinador
>
>
Sortida
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]]>
Dividiu una llista de Python en fragments mitjançant la comprensió de llistes
A Python, dividirem una llista en llistes per un valor particular Comprensió de llista . Aquest problema es pot resoldre en dues parts, a la primera part obtenim la llista d'índexs pel qual s'ha de realitzar la divisió mitjançant enumerar funció. I després podem unir els valors segons els índexs que utilitzem cremallera i el tall de llista.
Python 3
actor govinda
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))> |
>
>
Sortida
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]]>
Dividiu la llista a Python mitjançant For Loops
A Python, dividirem una llista en llistes mitjançant un valor particular per bucle s. El codi converteix la llista original en una representació de cadena i substitueix el preu particular per un delimitador (*). Aleshores divideix el canviat corda al delimitador per adquirir subcadenes.
Python 3
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))> |
>
>
Sortida
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]]>
Dividiu una llista en múltiples llistes mitjançant la recursència
A Python, dividirem una llista en llistes mitjançant un valor particular Recursió . El codi defineix un recursiu funció anomenat split_list_recursive que divideix una llista determinada en subllistes sempre que es produeix un valor determinat. Utilitza recursivitat i dues llistes temporals (result i temp_list) per emmagatzemar les subllistes resultants.
llista comparable
Python 3
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)> |
>
>
Sortida
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]]>
Dividiu la llista a Python mitjançant Itertools
A Python, dividirem una llista en llistes mitjançant un valor particular itertools . El codi defineix una funció anomenada split_list que pren una llista i un valor com a entrada. Fa servir el iertools.groupby() funció per agrupar elements consecutius en el llista en funció de si són iguals al valor donat.
Python 3
índex de java
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)> |
>
excepció de llançament de java
>
Sortida
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]]>
Dividiu la llista a Python mitjançant NumPy
A Python, dividirem una llista en llistes per valor particular utilitzant Numpy. El codi pren una llista i un valor particular com a entrada. A continuació, converteix la llista en a NumPy matriu i troba els índexs on apareix el valor particular.
Python 3
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)> |
>
>
Sortida
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]>