Python - Prefix sum list

A prefix sum list (also called cumulative sum) is a new list where each element represents the sum of all elements from the start up to that position in the original list. This is useful for range sum queries and sliding window problems.

Using List Comprehension with sum()

The most straightforward approach uses list comprehension with the sum() function and list slicing ?

# using list comprehension + sum() + list slicing
# initializing list
test_list = [3, 4, 1, 7, 9, 1]

# printing original list
print("The original list : " + str(test_list))

# using list comprehension + sum() + list slicing
# prefix sum list
res = [sum(test_list[:i + 1]) for i in range(len(test_list))]

# print result
print("The prefix sum list is : " + str(res))
The original list : [3, 4, 1, 7, 9, 1]
The prefix sum list is : [3, 7, 8, 15, 24, 25]

Using itertools.accumulate()

Python's itertools.accumulate() function provides a built-in solution for cumulative operations ?

import itertools

numbers = [3, 4, 1, 7, 9, 1]
print("Original list:", numbers)

# Using accumulate for prefix sum
prefix_sum = list(itertools.accumulate(numbers))
print("Prefix sum list:", prefix_sum)
Original list: [3, 4, 1, 7, 9, 1]
Prefix sum list: [3, 7, 8, 15, 24, 25]

Manual Loop Approach

For better understanding, you can build the prefix sum manually using a loop ?

data = [3, 4, 1, 7, 9, 1]
prefix_sum = []
running_sum = 0

print("Original list:", data)

for num in data:
    running_sum += num
    prefix_sum.append(running_sum)

print("Prefix sum list:", prefix_sum)
Original list: [3, 4, 1, 7, 9, 1]
Prefix sum list: [3, 7, 8, 15, 24, 25]

Comparison

Method Time Complexity Best For
List comprehension + sum() O(n²) Small lists, readable code
itertools.accumulate() O(n) Built-in solution, efficient
Manual loop O(n) Educational, customizable

Conclusion

Use itertools.accumulate() for the most efficient prefix sum calculation. The manual loop approach helps understand the concept, while list comprehension offers readable but slower performance for large lists.

Updated on: 2026-03-25T09:17:53+05:30

983 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements