logo

Python | Jaa luettelo luetteloihin tietyn arvon mukaan

Pythonissa luettelon jakaminen aliluetteloihin tietyn arvon perusteella. Ajatuksena on iteroida läpi alkuperäinen luettelo ja ryhmitellä elementit aliluetteloiksi aina, kun määritetty arvo havaitaan. Usein on tarpeen käsitellä ja käsitellä luetteloita, varsinkin kun käsitellään suuria tietomääriä. Yksi toistuva toimenpide on listan jakaminen useisiin aliluetteloihin tietyn arvon mukaan. Kun haluat yhdistää komponentteja yhteen tai analysoida datan eri osajoukkoja, tämä toimenpide saattaa olla hyödyllinen.

Tapoja jakaa luettelot luetteloihin kunnon perusteella

Tässä on eri menetelmiä, joilla voimme jakaa luettelot luetteloiksi tietyn ehdon perusteella.



  • Yksinkertaisen iteroinnin käyttäminen
  • Listan ymmärtämisen käyttö
  • Käyttö silmukoille
  • Rekursion käyttö
  • Itertoolsin käyttö
  • NumPyllä

Jaa luettelo Pythonissa iteraatiolla

Sisään Python , jaamme luettelon luetteloihin tietyn arvon mukaan käyttämällä Yksinkertainen iteraatio . Koodi alustaa luettelon ja tietyn arvon. Sitten se jakaa luettelon aliluetteloiksi tietyn arvon perusteella iteroimalla luettelon jokaisen elementin yli.

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

epädeterministiset äärelliset automaatit

>

>

Lähtö

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

Jaa Python-lista osiin käyttämällä luettelon ymmärtämistä

Pythonissa jaamme luettelon luetteloihin tietyn arvon mukaan käyttämällä Listan ymmärtäminen . Tämä ongelma voidaan ratkaista kahdessa osassa, ensimmäisessä osassa saamme indeksiluettelon, jonka mukaan jako on suoritettava käyttämällä luetella toiminto. Ja sitten voimme yhdistää arvot indeksien mukaan postinumero ja listan viipalointi.

Python 3




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

>

>

asenna maven

Lähtö

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

Jaa luettelo Pythonissa For Loopsin avulla

Pythonissa jaamme luettelon luetteloihin tietyn arvon mukaan käyttämällä silmukalle s. Koodi muuntaa alkuperäisen listauksen merkkijonomuodoksi ja korvaa tietyn hinnan erottimella (*). Sitten se jakaa muuttuneen merkkijono erottimessa alimerkkijonojen hankkimiseksi.

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

int merkkijonoon
>

>

Lähtö

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

Jaa luettelo useiksi luetteloiksi Rekursiolla

Pythonissa jaamme luettelon luetteloihin tietyn arvon mukaan käyttämällä Rekursio . Koodi määrittelee rekursiivin toiminto kutsutaan split_list_recursive, joka jakaa tietyn luettelon aliluetteloiksi aina, kun tietty arvo esiintyy. Se käyttää rekursiota ja kahta väliaikaista luetteloa (result ja temp_list) tallentaakseen tuloksena olevat aliluettelot.

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

>

>

Lähtö

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

Jaa luettelo Pythonissa Itertoolsin avulla

Pythonissa jaamme luettelon luetteloihin tietyn arvon mukaan käyttämällä iter-työkalut . Koodi määrittelee split_list-nimisen funktion, joka ottaa syötteenä listan ja arvon. Se käyttää itertools.groupby() toiminto ryhmitellä peräkkäisiä elementtejä lista sen perusteella, ovatko ne yhtä suuria kuin annettu arvo.

Python 3




Task Manager linux
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)>

>

roomalainen numero 1-100
>

Lähtö

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

Jaa luettelo Pythonissa NumPyn avulla

Pythonissa jaamme luettelon luetteloita tietyllä arvolla käyttämällä Numpya. Koodi ottaa syötteeksi luettelon ja tietyn arvon. Sitten se muuntaa luettelon muotoon a NumPy taulukko ja löytää indeksit, joissa tietty arvo esiintyy.

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)>>>]> print>(>'The original list:'>, test_list)> print>(>'The list after splitting by a value:'>, result)>

>

>

Lähtö

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