V Pythonu, za razdelitev seznama na podsezname na podlagi določene vrednosti. Ideja je iteracija skozi prvotni seznam in združevanje elementov v podsezname, kadar koli se pojavi navedena vrednost. Pogosto je treba manipulirati in obdelovati sezname, še posebej, ko imamo opravka z velikimi količinami podatkov. Ena pogosta operacija je razdelitev seznama na več podseznamov glede na določeno vrednost. Ko želite združiti komponente ali analizirati različne podnabore podatkov, je ta postopek lahko koristen.
Načini razdelitve seznamov na sezname glede na pogoje
Tukaj so različne metode, ki jih lahko uporabimo za razdelitev seznamov na sezname glede na dani pogoj.
- Uporaba preproste iteracije
- Uporaba seznamskega razumevanja
- Uporaba for zank
- Uporaba rekurzije
- Uporaba Itertools
- Uporaba NumPy
Razdeli seznam v Pythonu z uporabo iteracije
noter Python , bomo razdelili seznam na sezname z določeno vrednostjo z uporabo Preprosta ponovitev . Koda inicializira seznam in določeno vrednost. Nato seznam razdeli na podsezname na podlagi določene vrednosti s ponavljanjem po vsakem elementu seznama.
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))> |
ali lahko razred razširi več razredov
>
>
Izhod
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]]>
Seznam Python razdelite na dele s pomočjo razumevanja seznama
V Pythonu bomo seznam razdelili na sezname po določeni vrednosti z uporabo Razumevanje seznama . Ta problem je mogoče rešiti v dveh delih, v prvem delu dobimo indeksni seznam, po katerem je treba izvesti razdelitev z uporabo našteti funkcijo. In potem lahko združimo vrednosti glede na indekse z uporabo zip in rezanje seznama.
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))> |
>
>
katrina kaif
Izhod
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]]>
Razdeli seznam v Pythonu z uporabo For Loops
V Pythonu bomo seznam razdelili na sezname po določeni vrednosti z uporabo za zanko s. Koda pretvori prvotni seznam v predstavitev niza in zamenja določeno ceno z ločilom (*). Nato razdeli spremenjeno vrvica na ločilo za pridobitev podnizov.
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))> |
omejitve e-bančništva
>
>
Izhod
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]]>
Razdeli seznam na več seznamov z uporabo rekurzije
V Pythonu bomo seznam razdelili na sezname po določeni vrednosti z uporabo Rekurzija . Koda definira rekurzivno funkcijo imenovan split_list_recursive, ki dani seznam razdeli na podsezname, kadar koli se pojavi določena vrednost. Uporablja rekurzijo in dva začasna seznama (result in temp_list) za shranjevanje nastalih podseznamov.
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)> |
>
>
Izhod
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]]>
Razdeli seznam v Pythonu z uporabo Itertools
V Pythonu bomo seznam razdelili na sezname po določeni vrednosti z uporabo itertools . Koda definira funkcijo, imenovano split_list, ki sprejme seznam in vrednost kot vhod. Uporablja itertools.groupby() funkcijo združevanja zaporednih elementov v seznam glede na to, ali so enaki dani vrednosti.
Python3
git rebase
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)> |
>
igra pigeon android
>
Izhod
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]]>
Razdeli seznam v Pythonu z uporabo NumPy
V Pythonu bomo seznam razdelili na sezname z določeno vrednostjo z uporabo Numpy. Koda sprejme seznam in določeno vrednost kot vhod. Nato seznam pretvori v a NumPy matriko in poišče indekse, kjer se pojavlja določena vrednost.
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)> |
>
>
Izhod
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]>