SLICE FOR CHUNKING AND BATCHING
Python
#!/usr/bin/env python3
"""
SLICE FOR CHUNKING AND BATCHING
Split sequences into fixed-size chunks
"""
print("=== Basic Chunking ===")
data = list(range(1, 21))
chunk_size = 5
chunks = [data[i:i+chunk_size] for i in range(0, len(data), chunk_size)]
print(f"Data: {data}")
print(f"\nChunks of {chunk_size}:")
for i, chunk in enumerate(chunks, 1):
print(f" Chunk {i}: {chunk}")
print("\n=== Process in Batches ===")
items = ['item' + str(i) for i in range(1, 16)]
batch_size = 4
print(f"Processing {len(items)} items in batches of {batch_size}:")
for i in range(0, len(items), batch_size):
batch = items[i:i+batch_size]
print(f"Batch {i//batch_size + 1}: {batch}")
print("\n=== Split String into N-grams ===")
text = "ABCDEFGHIJ"
n = 3
ngrams = [text[i:i+n] for i in range(len(text) - n + 1)]
print(f"Text: {text}")
print(f"{n}-grams: {ngrams}")
print("\n=== Sliding Window ===")
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
window_size = 3
print(f"Numbers: {numbers}")
print(f"Sliding window (size {window_size}):")
for i in range(len(numbers) - window_size + 1):
window = numbers[i:i+window_size]
avg = sum(window) / len(window)
print(f" Window {i+1}: {window} -> avg: {avg:.2f}")
print("\n=== Pagination ===")
all_items = [f"Item{i}" for i in range(1, 51)]
page_size = 10
page_num = 3 # Get page 3
start = (page_num - 1) * page_size
end = start + page_size
page_items = all_items[start:end]
print(f"Page {page_num} (items {start+1}-{end}):")
print(page_items)
print("\n=== Split List by Delimiter ===")
data = [1, 2, 3, 0, 4, 5, 0, 6, 7, 8]
delimiter = 0
print(f"Data: {data}")
print("Split by 0:")
result = []
start = 0
for i, val in enumerate(data):
if val == delimiter:
if start < i:
result.append(data[start:i])
start = i + 1
if start < len(data):
result.append(data[start:])
for i, group in enumerate(result, 1):
print(f" Group {i}: {group}")