Python - Get sum of last K list items using slice

In Python, the slice method allows us to extract specific elements from a sequence, such as strings, lists, or tuples. It provides a concise and flexible way to work with subsequences within a larger sequence. In this article, we will explore how to obtain the sum of the last K items in a list using slice operations.

Algorithm

To find the sum of the last K items in a list, we can follow a simple algorithm:

  • Accept the list and the value of K as inputs.

  • Use the slice operator to extract the last K items from the list.

  • Calculate the sum of the extracted items.

  • Return the sum as the output.

Syntax

sequence[start:end:step]

Here, the slice method takes three optional parameters:

  • start (optional): The index of the element where the slice should start. If not provided, it defaults to the beginning of the sequence.

  • end (optional): The index of the element where the slice should end (exclusive). If not provided, it defaults to the end of the sequence.

  • step (optional): The step or increment value for selecting elements. If not provided, it defaults to 1.

The start, end and step values can be positive or negative integers, allowing you to traverse the sequence in both forward and backward directions.

Using Negative Slice for Last K Elements

By specifying a negative index in the slice, we can start from the end of the list and go backward. The syntax [-K:] extracts the last K elements from a list ?

numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
K = 4

# Extract last K elements and calculate sum
last_k_elements = numbers[-K:]
sum_of_last_k = sum(last_k_elements)

print("Original list:", numbers)
print("Last", K, "elements:", last_k_elements)
print("Sum of last", K, "items:", sum_of_last_k)
Original list: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Last 4 elements: [70, 80, 90, 100]
Sum of last 4 items: 340

One-Line Solution

We can combine slicing and sum calculation into a single line for a more concise approach ?

numbers = [5, 15, 25, 35, 45, 55, 65]
K = 3

sum_of_last_k = sum(numbers[-K:])
print("Sum of last", K, "items:", sum_of_last_k)
Sum of last 3 items: 185

Handling Edge Cases

When K is greater than the list length, Python handles it gracefully by returning all elements ?

small_list = [1, 2, 3]
K = 5

# K is greater than list length
sum_result = sum(small_list[-K:])
print("List:", small_list)
print("K =", K, "(greater than list length)")
print("Sum:", sum_result)

# When K equals list length
K = 3
sum_all = sum(small_list[-K:])
print("When K equals list length:", sum_all)
List: [1, 2, 3]
K = 5 (greater than list length)
Sum: 6
When K equals list length: 6

Alternative Approaches

Using deque from collections

The deque with maxlen parameter automatically maintains only the last N elements ?

from collections import deque

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
K = 4

# Create deque with maxlen to get last K elements
last_k = deque(numbers, maxlen=K)
sum_result = sum(last_k)

print("Last", K, "elements:", list(last_k))
print("Sum:", sum_result)
Last 4 elements: [7, 8, 9, 10]
Sum: 34

Comparison of Methods

Method Syntax Performance Best For
Negative Slice sum(list[-K:]) Fast Simple, readable code
deque deque(list, maxlen=K) Memory efficient Large datasets, streaming data

Conclusion

The negative slice method sum(list[-K:]) provides the most straightforward way to get the sum of last K elements. It's readable, efficient, and handles edge cases automatically. For large datasets or streaming scenarios, consider using deque for better memory management.

Updated on: 2026-03-27T08:47:59+05:30

823 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements