logo

Python | Rozdeľte zoznam na zoznamy podľa konkrétnej hodnoty

V Pythone Rozdelenie zoznamu na podzoznamy na základe konkrétnej hodnoty. Myšlienkou je prechádzať pôvodným zoznamom a zoskupovať prvky do podzoznamov vždy, keď sa nájde zadaná hodnota. Často je potrebné manipulovať a spracovávať zoznamy, najmä pri práci s veľkým množstvom údajov. Jednou z častých operácií je rozdelenie zoznamu do niekoľkých podzoznamov podľa konkrétnej hodnoty. Ak chcete kombinovať komponenty alebo analyzovať rôzne podmnožiny údajov, tento postup môže byť užitočný.

Spôsoby, ako rozdeliť zoznamy na zoznamy na základe stavu

Tu sú rôzne metódy, ktoré môžeme použiť na rozdelenie zoznamov do zoznamov na základe danej podmienky.

  • Použitie jednoduchej iterácie
  • Používanie porozumenia zoznamu
  • Používanie slučiek for
  • Použitie rekurzie
  • Používanie Itertools
  • Pomocou NumPy

Rozdeľte zoznam v Pythone pomocou iterácie

In Python , rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou Jednoduchá iterácia . Kód inicializuje zoznam a konkrétnu hodnotu. Potom rozdelí zoznam na podzoznamy na základe konkrétnej hodnoty iterovaním cez každý prvok zoznamu.



Python3


filmové webové stránky podobné 123movies



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

>

>

Výkon

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

Rozdeľte zoznam Python na časti pomocou funkcie List Comprehension

V Pythone rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou Porozumenie zoznamu . Tento problém je možné vyriešiť v dvoch častiach, v prvej časti získame zoznam indexov, pomocou ktorých je potrebné vykonať rozdelenie vyčísliť funkciu. A potom môžeme spojiť hodnoty podľa indexov pomocou PSČ a krájanie zoznamu.

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

>

>

Výkon

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

Rozdeľte zoznam v Pythone pomocou For Loops

V Pythone rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou pre slučku s. Kód prevedie pôvodný výpis na reťazcovú reprezentáciu a nahradí konkrétnu cenu oddeľovačom (*). Potom rozdelí zmenené reťazec na oddeľovači na získanie podreťazcov.

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

>

>

Výkon

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

Rozdeľte zoznam do viacerých zoznamov pomocou rekurzie

V Pythone rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou Rekurzia . Kód definuje rekurzívne funkciu s názvom split_list_recursive, ktorý rozdelí daný zoznam na podzoznamy vždy, keď sa vyskytne konkrétna hodnota. Na uloženie výsledných podzoznamov používa rekurziu a dva dočasné zoznamy (výsledok a zoznam temp_listov).

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

>

>

porovnať s reťazcom

Výkon

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

Rozdeľte zoznam v Pythone pomocou Itertools

V Pythone rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou itertools . Kód definuje funkciu s názvom split_list, ktorá berie ako vstup zoznam a hodnotu. Používa sa itertools.groupby() funkcia na zoskupenie po sebe idúcich prvkov v zoznam na základe toho, či sa rovnajú danej hodnote.

Python3




ako nájsť blokované čísla v systéme Android
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)>

>

>

Výkon

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

Rozdeľte zoznam v Pythone pomocou NumPy

V Pythone rozdelíme zoznam na zoznamy podľa konkrétnej hodnoty pomocou Numpy. Kód berie ako vstup zoznam a konkrétnu hodnotu. Potom skonvertuje zoznam na a NumPy pole a nájde indexy, kde sa konkrétna hodnota vyskytuje.

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

>

>

Výkon

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