logo

Python | Seznam razdeli na sezname po določeni vrednosti

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]>