Junior
How can a list be divided into several parts?
sobes.tech AI
Answer from AI
To split a list into parts in Python, several approaches can be used.
1. Using slices
# Original list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Split into two parts
part1 = my_list[:5] # Elements from index 0 to 4
part2 = my_list[5:] # Elements from index 5 to end
2. Generator for fixed-size chunks
def chunk_list(input_list, chunk_size):
"""Splits list into chunks of fixed size."""
for i in range(0, len(input_list), chunk_size):
yield input_list[i:i + chunk_size]
# Original list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Chunk size
chunk_size = 3
# Using generator
chunks = list(chunk_list(my_list, chunk_size))
# Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
3. Using itertools
from itertools import islice
def chunk_list_itertools(input_list, chunk_size):
"""Splits list into chunks of fixed size using itertools."""
it = iter(input_list)
while True:
chunk = list(islice(it, chunk_size))
if not chunk:
break
yield chunk
# Original list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Chunk size
chunk_size = 4
# Using itertools generator
chunks_iterator = chunk_list_itertools(my_list, chunk_size)
# Iterate over chunks
# for chunk in chunks_iterator:
# print(chunk)
# Output:
# [1, 2, 3, 4]
# [5, 6, 7, 8]
# [9, 10]
4. Divide into approximately equal parts
import math
def split_into_n_parts(input_list, n):
"""Splits list into approximately n equal parts."""
avg_chunk_size = len(input_list) / n
chunks = []
start = 0
for i in range(n):
end = start + math.ceil(avg_chunk_size)
chunks.append(input_list[int(start):int(end)])
start = end
return chunks
# Original list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Number of parts
num_parts = 3
# Split into 3 parts
parts = split_into_n_parts(my_list, num_parts)
# Output: [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]]
The method depends on the specific task: whether you need a fixed number of parts, parts of fixed size, or efficiency with large lists.