Python - Kth digit Sum

Finding the kth digit sum means calculating the sum of all digits at the kth position from each number in a list. This concept is useful in data validation, financial analysis, and pattern recognition. In this article, we will explore multiple approaches to find the kth digit sum using loops, list comprehensions, lambda functions, and libraries like NumPy and functools.

Understanding The Problem Statement

Suppose we have the following inputs ?

numbers = [123, 456, 789]
k = 0

We need to find the kth digit sum. At index k=0, the digits are: 1 (from 123), 4 (from 456), 7 (from 789). The summation is 1+4+7 = 12.

Output: 12

Using For Loops

The simplest approach is using a for loop to iterate through each number, extract the kth digit, and sum them up ?

def kth_digit_sum_loop(numbers, k):
    total = 0
    for num in numbers:
        digit = int(str(num)[k])
        total += digit
    return total

numbers = [4154, 1175, 1754, 7451, 7642]
k = 0
result = kth_digit_sum_loop(numbers, k)
print(f"The kth digit sum is: {result}")
The kth digit sum is: 20

Using List Comprehension

List comprehension provides a more concise way to extract and sum the kth digits in a single line ?

def kth_digit_sum_comprehension(numbers, k):
    return sum(int(str(num)[k]) for num in numbers)

numbers = [7845, 4521, 56452, 58896, 7842, 57456]
k = 1
result = kth_digit_sum_comprehension(numbers, k)
print(f"The kth digit sum is: {result}")
The kth digit sum is: 42

Using Lambda and Map Functions

Lambda functions combined with map() can create a functional programming approach ?

Syntax

map(function, iterable)

Example

def kth_digit_sum_map(numbers, k):
    str_numbers = map(str, numbers)
    kth_digits = map(lambda x: int(x[k]), str_numbers)
    return sum(kth_digits)

numbers = [7845, 4521, 56452, 58896, 7842, 57456]
k = 3
result = kth_digit_sum_map(numbers, k)
print(f"The kth digit sum is: {result}")
The kth digit sum is: 27

Using NumPy Library

NumPy provides efficient array operations for numerical computations ?

import numpy as np

def kth_digit_sum_numpy(numbers, k):
    str_array = np.array([str(num) for num in numbers])
    digit_array = np.array([int(num_str[k]) for num_str in str_array])
    return np.sum(digit_array)

numbers = [7845, 4521, 56452, 58896, 7842, 57456]
k = 1
result = kth_digit_sum_numpy(numbers, k)
print(f"The kth digit sum is: {result}")
The kth digit sum is: 42

Using Functools Library

The functools module provides higher-order functions like reduce() for functional programming approaches ?

import functools

def kth_digit_sum_functools(numbers, k):
    def extract_kth_digit(number):
        return int(str(number)[k])
    
    kth_digits = list(map(extract_kth_digit, numbers))
    return functools.reduce(lambda x, y: x + y, kth_digits)

numbers = [12345, 67890, 34567]
k = 4
result = kth_digit_sum_functools(numbers, k)
print(f"The kth digit sum is: {result}")
The kth digit sum is: 12

Comparison

Method Readability Performance Best For
For Loop High Good Beginners, clear logic
List Comprehension High Better Pythonic, concise code
Lambda + Map Medium Good Functional programming
NumPy Medium Best Large datasets, numerical computing
Functools Medium Good Complex functional operations

Conclusion

Python offers multiple approaches to find the kth digit sum, each with its own advantages. List comprehension provides the most Pythonic solution, while NumPy excels with large datasets. Choose the method that best fits your specific use case and coding style.

Updated on: 2026-03-27T08:33:19+05:30

286 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements