Find the difference of the sum of list elements that are missing from Matrix and vice versa in python

In this article, we will learn how to find the difference of the sum of list elements that are missing from Matrix and vice versa. This problem involves comparing elements between a 2D matrix and a 1D list to calculate the absolute difference of their unique elements' sums.

Problem Overview

Given a matrix and a list, we need to ?

  • Find elements in the list that are not in the matrix

  • Find elements in the matrix that are not in the list

  • Calculate the absolute difference between their sums

Example

Let's understand with an example ?

inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]]
targetList = [9, 2, 1, 10, 3, 1]

# Elements in list but not in matrix: [9] ? sum = 9
# Elements in matrix but not in list: [6, 5, 4, 8, 15, 7] ? sum = 45
# Absolute difference: |45 - 9| = 36

Method 1: Using for loop & from_iterable() function

The itertools.chain.from_iterable() function flattens a 2D matrix into a 1D list ?

from itertools import chain

# Input data
inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]]
targetList = [9, 2, 1, 10, 3, 1]

print("Input Matrix:", inputMatrix)
print("Target List:", targetList)

# Flatten the matrix
flattenMatrix = list(chain.from_iterable(inputMatrix))
print("Flattened Matrix:", flattenMatrix)

# Sum of list elements not in matrix
listSum = 0
for i in targetList:
    if i not in flattenMatrix:
        listSum += i

# Sum of matrix elements not in list
matrixSum = 0
for i in flattenMatrix:
    if i not in targetList:
        matrixSum += i

# Calculate absolute difference
resultantDiff = abs(matrixSum - listSum)
print("List elements missing from matrix sum:", listSum)
print("Matrix elements missing from list sum:", matrixSum)
print("Absolute difference:", resultantDiff)
Input Matrix: [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]]
Target List: [9, 2, 1, 10, 3, 1]
Flattened Matrix: [6, 3, 2, 5, 4, 1, 10, 8, 1, 15, 7, 2]
List elements missing from matrix sum: 9
Matrix elements missing from list sum: 45
Absolute difference: 36

Method 2: Using List Comprehension with sum()

This approach uses list comprehension for more concise code ?

from itertools import chain

inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]]
targetList = [9, 2, 1, 10, 3, 1]

# Flatten the matrix
flattenMatrix = list(chain.from_iterable(inputMatrix))

# Calculate sums using list comprehension
listSum = sum([i for i in targetList if i not in flattenMatrix])
matrixSum = sum([i for i in flattenMatrix if i not in targetList])

# Get absolute difference
resultantDiff = abs(matrixSum - listSum)
print("Absolute difference:", resultantDiff)
Absolute difference: 36

Method 3: Using Counter() function

The Counter class counts occurrences of elements, useful for frequency-based operations ?

from collections import Counter

inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]]
targetList = [9, 2, 1, 10, 3, 1]

# Flatten matrix manually
flattenMatrix = []
for row in inputMatrix:
    for element in row:
        flattenMatrix.append(element)

# Create frequency counters
matrixFreq = Counter(flattenMatrix)
listFreq = Counter(targetList)

# Find missing elements and their sums
listSum = sum([p for p in targetList if p not in matrixFreq])
matrixSum = sum([p for p in flattenMatrix if p not in listFreq])

# Calculate absolute difference
resultantDiff = abs(matrixSum - listSum)
print("Absolute difference:", resultantDiff)
Absolute difference: 36

Comparison of Methods

Method Approach Best For
For Loop Explicit iteration Beginner understanding
List Comprehension Concise syntax Clean, readable code
Counter Frequency counting Complex frequency operations

Conclusion

All three methods effectively solve the problem of finding the difference between sums of missing elements. Use list comprehension for clean code, or Counter when dealing with element frequencies. The chain.from_iterable() function is essential for flattening 2D matrices.

Updated on: 2026-03-26T23:57:07+05:30

303 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements