Show
This post will discuss how to split a delimited and non-delimited string into a list in Python. Related Post: Convert a string to a list of characters in Python The list() constructor builds a list directly from an iterable, and since the string is iterable, you can construct a list from it by passing the string to the list constructor:
if __name__ == '__main__': print(chars) # ['A', 'B', 'C'] Download Run Code 2. Using str.split() functionYou can use the str.split(sep=None) function, which returns a list of the words in the string, using sep as the delimiter string. For example, to split the string with delimiter -, you can do:
Download Run Code
Download Run Code 3. Using shlex.split() functionThe shlex module defines the shlex.split(s) function, which split the string s using shell-like syntax.
Download Run Code That’s all about splitting a string into a list in Python.
Thanks for reading. Please use our online compiler to post code in comments using C, C++, Java, Python, JavaScript, C#, PHP, and many more popular programming languages. Like us? Refer us to your friends and help us grow. Happy coding 🙂
In this tutorial, you will learn how to split a list into chunks in Python using different ways with examples. Lists are mutable and heterogenous, meaning they can be changed and contain different data types. We can access the elements of the list using their index position. There are five various ways to split a list into chunks.
Method 1: Using a For-LoopThe naive way to split a list is using the for loop with help of range() function. The range function would read range(0, 10, 2), meaning we would loop over the items 0,2,4,6,8. We then index our list from i:i+chunk_size, meaning the first loop would be 0:2, then 2:4, and so on. # Split a Python List into Chunks using For Loops sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] chunked_list = list() chunk_size = 2 for i in range(0, len(sample_list), chunk_size): chunked_list.append(sample_list[i:i+chunk_size]) print(chunked_list)Output [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]Method 2: Using the List Comprehension MethodThe list comprehension is an effective way to split a list into chunks when compared to for loop, and it’s more readable. We have a sample_list and contain ten elements in it. We will split the list into equal parts with a chunk_size of 2. # Split a Python List into Chunks using list comprehensions sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] chunk_size=2 result=[sample_list[i:i + chunk_size] for i in range(0, len(sample_list), chunk_size)] print(result)Output [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]sample_list[i:i + chunk_size] give us each chunk. For example, if i=0, the items included in the chunk are i to i+chunk_size, which is from 0:2 index. In the next iteration, the items included would be 2:4 index and so on. We can leverage the itertools module to split a list into chunks. The zip_longest() function returns a generator that must be iterated using for loop. It’s a straightforward implementation and returns a list of tuples, as shown below. # Split a Python List into Chunks using itertools from itertools import zip_longest sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] chunk_size=2 result=list(zip_longest(*[iter(sample_list)]*chunk_size, fillvalue='')) print(result) chunked_list = [list(item) for item in list(zip_longest(*[iter(sample_list)]*chunk_size, fillvalue=''))] print(chunked_list)Output [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]Method 4: Using the NumPy MethodWe can use the NumPy library to divide the list into n-sized chunks. The array_split() function splits the list into sublists of specific size defined as n. # Split a Python List into Chunks using numpy import numpy as np # define array and chunk_szie sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] our_array = np.array(sample_list) chunk_size = 2 # split the array into chunks chunked_arrays = np.array_split(our_array, len(sample_list) / chunk_size) print(chunked_arrays) # Covert chunked array into list chunked_list = [list(array) for array in chunked_arrays] print(chunked_list)Output [array([1, 2]), array([3, 4]), array([5, 6]), array([7, 8]), array([ 9, 10])] [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]Method 5: Using the lambda MethodWe can use the lambda function to divide the list into chunks. The lambda function will iterate over the elements in the list and divide them into N-Sized chunks, as shown below. # Split a Python List into Chunks using lambda function sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] chunk_size = 2 lst= lambda sample_list, chunk_size: [sample_list[i:i+chunk_size] for i in range(0, len(sample_list), chunk_size)] result=lst(sample_list, chunk_size) print(result)Output [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] |