I Python, å dele en liste i underlister basert på en bestemt verdi. Ideen er å iterere gjennom den opprinnelige listen og gruppere elementer i underlister hver gang den angitte verdien påtreffes. Det er ofte nødvendig å manipulere og behandle lister, spesielt når det er snakk om store datamengder. En hyppig operasjon er å dele en liste i flere underlister i henhold til en bestemt verdi. Når du ønsker å kombinere komponenter sammen eller analysere ulike delsett av dataene, kan denne prosedyren være nyttig.
Måter å dele lister i lister basert på tilstand
Her er de forskjellige metodene vi kan bruke for å dele lister i lister basert på den gitte tilstanden.
- Bruke enkel iterasjon
- Bruke listeforståelse
- Brukes til løkker
- Bruker rekursjon
- Bruker Itertools
- Bruker NumPy
Del liste i Python ved hjelp av iterasjon
I Python , vil vi dele en liste i lister etter spesiell verdi ved å bruke Enkel iterasjon . Koden initialiserer en liste og en bestemt verdi. Den deler deretter listen i underlister basert på den spesielle verdien ved å iterere over hvert element i listen.
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))> |
>
>
Produksjon
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]]>
Del en Python-liste i biter ved hjelp av listeforståelse
I Python vil vi dele en liste i lister etter spesiell verdi ved å bruke Listeforståelse . Dette problemet kan løses i to deler, i den første delen får vi indekslisten som splitting må utføres etter ved hjelp av oppregne funksjon. Og så kan vi slå sammen verdiene i henhold til indeksene ved hjelp av glidelås og listeskjæring.
Python3
tostring-metoden
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))> |
>
>
Produksjon
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]]>
Del liste i Python ved å bruke For Loops
I Python vil vi dele en liste i lister etter spesiell verdi ved å bruke for løkke s. Koden konverterer den opprinnelige oppføringen til en strengrepresentasjon og erstatter den bestemte prisen med en skilletegn (*). Den deler deretter det endrede streng på skilletegnet for å skaffe delstrenger.
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))> |
>
>
Produksjon
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]]>
Del en liste i flere lister ved hjelp av rekursjon
I Python vil vi dele en liste i lister etter spesiell verdi ved å bruke Rekursjon . Koden definerer en rekursiv funksjon kalt split_list_recursive som deler en gitt liste i underlister når en bestemt verdi oppstår. Den bruker rekursjon og to midlertidige lister (resultat og temp_list) for å lagre de resulterende underlistene.
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)> |
>
>
Produksjon
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]]>
Del liste i Python ved hjelp av Itertools
I Python vil vi dele en liste i lister etter spesiell verdi ved å bruke itertools . Koden definerer en funksjon kalt split_list som tar en liste og en verdi som input. Den bruker itertools.groupby() funksjon for å gruppere påfølgende elementer i liste basert på om de er lik den gitte verdien.
Python3
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)> |
>
>
Produksjon
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]]>
Del liste i Python ved hjelp av NumPy
I Python vil vi dele en liste inn i lister etter spesiell verdi ved å bruke Numpy. Koden tar en liste og en bestemt verdi som input. Den konverterer deretter listen til en NumPy array og finner indeksene der den bestemte verdien forekommer.
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)> |
>
>
Produksjon
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]>