Python split list by element

  1. HowTo
  2. Python How-To's
  3. Split Python List in Half

Split Python List in Half

Python Python list

Created: July-02, 2021

Lists store elements at a particular index and are mutable, which means that we can later update the values in a list.

We will learn how to split a list in half in this tutorial.

Use the List Slicing to Split a List in Half in Python

List slicing grabs a specific portion of the list for some operation while the original list remains unaffected. That means it creates a duplicate of the list to perform the assigned task. The slicing operator [[:] ] in Python is used for this.

We split a list in half in the following code.

lst=['a','b','c','d','e','f'] print[lst[:3]] print[lst[3:]]

Output:

['a', 'b', 'c'] ['d', 'e', 'f']

We can also create a function to split the list in half. We will use the len[] function to find the length of the list. We will half this value and use the list slicing method to split it in half.

For example,

def split_list[a_list]: half = len[a_list]//2 return a_list[:half], a_list[half:] A = ['a','b','c','d','e','f'] B, C = split_list[A] print[B] print[C]

Output:

['a', 'b', 'c'] ['d', 'e', 'f']

We created a function split_list that returns two halves of an existing list.

Note that it does not change the original list, as it creates a duplicate list to perform the assigned task.

Use the islice[] Function to Split a List in Half Python

In Python, itertools is the inbuilt module allowing us to handle the iterators efficiently.

It makes the iteration through the iterables like lists and strings very easy. The islice function is a part of the itertools module. It selectively prints the values mentioned in its iterable container passed as an argument.

For example,

from itertools import islice Input = ['a','b','c','d','e','f'] length_to_split = [len[Input]//2]*2 lst = iter[Input] Output = [list[islice[lst, elem]] for elem in length_to_split] print["Initial list:", Input] print["After splitting", Output]

Output:

Initial list: ['a', 'b', 'c', 'd', 'e', 'f'] After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]

Use the accumulate[] Function to Split a List in Half in Python

The zip[] function is used to combine elements from an iterable. We can use it with the accumulate[] function from the itertools module to split a list in half.

For example,

from itertools import accumulate Input = ['a','b','c','d','e','f'] length_to_split = [len[Input]//2]*2 Output = [Input[x - y: x] for x, y in zip[ accumulate[length_to_split], length_to_split]] print["Initial list :", Input] print["After splitting", Output]

Output:

Initial list : ['a', 'b', 'c', 'd', 'e', 'f'] After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]
Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.
  • Sort List by Another List in Python
  • The __file__ Variable in Python
report this ad

Video liên quan

Chủ Đề