In Python: een lijst opsplitsen in sublijsten op basis van een bepaalde waarde. Het idee is om de oorspronkelijke lijst te doorlopen en elementen in sublijsten te groeperen wanneer de opgegeven waarde wordt aangetroffen. Het is vaak nodig om lijsten te manipuleren en te verwerken, vooral als het om grote hoeveelheden gegevens gaat. Een veel voorkomende bewerking is het verdelen van een lijst in verschillende sublijsten op basis van een specifieke waarde. Wanneer u componenten wilt combineren of verschillende subsets van de gegevens wilt analyseren, kan deze procedure nuttig zijn.
Manieren om lijsten op te splitsen in lijsten op basis van voorwaarde
Hier volgen de verschillende methoden die we kunnen gebruiken om lijsten op te splitsen in lijsten op basis van de gegeven voorwaarde.
- Met behulp van eenvoudige iteratie
- Lijstbegrip gebruiken
- For-lussen gebruiken
- Recursie gebruiken
- Itertools gebruiken
- NumPy gebruiken
Lijst splitsen in Python met behulp van iteratie
In Python , zullen we een lijst opsplitsen in lijsten op basis van een bepaalde waarde met behulp van Eenvoudige iteratie . De code initialiseert een lijst en een bepaalde waarde. Vervolgens wordt de lijst gesplitst in sublijsten op basis van de specifieke waarde, door elk element van de lijst te herhalen.
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))> |
>
>
Uitvoer
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]]>
Splits een Python-lijst in stukken met behulp van Lijstbegrip
In Python splitsen we een lijst op in lijsten op basis van een bepaalde waarde met behulp van Lijstbegrip . Dit probleem kan in twee delen worden opgelost, in het eerste deel krijgen we de indexlijst waarmee de splitsing moet worden uitgevoerd opsommen functie. En dan kunnen we de waarden samenvoegen volgens de indices met behulp van ritssluiting en lijst snijden.
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))> |
>
>
Uitvoer
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]]>
Lijst splitsen in Python met behulp van For Loops
In Python splitsen we een lijst op in lijsten op basis van een bepaalde waarde met behulp van for loop S. De code converteert de oorspronkelijke aanbieding naar een tekenreeksrepresentatie en vervangt de specifieke prijs door een scheidingsteken (*). Vervolgens wordt het gewijzigde gesplitst snaar op het scheidingsteken om subtekenreeksen te verkrijgen.
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))> |
krijg de arraylengte in c
>
>
Uitvoer
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]]>
Splits een lijst in meerdere lijsten met behulp van recursie
In Python splitsen we een lijst op in lijsten op basis van een bepaalde waarde met behulp van Herhaling . De code definieert een recursief functie genaamd split_list_recursive dat een gegeven lijst in sublijsten splitst wanneer een bepaalde waarde voorkomt. Het gebruikt recursie en twee tijdelijke lijsten (result en temp_list) om de resulterende sublijsten op te slaan.
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)> |
>
>
Uitvoer
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]]>
Lijst splitsen in Python met behulp van Itertools
In Python splitsen we een lijst op in lijsten op basis van een bepaalde waarde met behulp van itertools . De code definieert een functie genaamd split_list die een lijst en een waarde als invoer gebruikt. Het maakt gebruik van de itertools.groupby() functie om opeenvolgende elementen in de lijst gebaseerd op de vraag of ze gelijk zijn aan de gegeven waarde.
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)> |
>
b+ boom
>
Uitvoer
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]]>
Lijst splitsen in Python met NumPy
In Python splitsen we een lijst op in lijsten op een bepaalde waarde met behulp van Numpy. De code neemt een lijst en een bepaalde waarde als invoer. Vervolgens wordt de lijst omgezet in een NumPy array en vindt de indices waarin de specifieke waarde voorkomt.
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)> |
>
>
Uitvoer
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]>