
- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions
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.
Methods Used
The following are the various methods to accomplish this task −
Using for loop & from_iterable() function
Using sum() & from_iterable() functions
Using the Counter() function
Example
Assume we have taken an input matrix and a target list. We will now find the difference of the sum of list elements that are missing from Matrix and vice versa.
Input
inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] targetList = [9, 2, 1, 10, 3, 1]
Output
The absolute difference between matrix sum and list sum: 36
Explanation
In this example,
The list elements that are missing from the matrix are (9) so the sum is 9.
The matrix elements that are missing from the list are (6,5,4,8,15,7) so the sum is 45
The absolute difference between matrix sum and list sum = 45-9= 36
Method 1: Using for loop & from_iterable() function
itertools.chain.from_iterable() function
It belongs to the terminating iterators category.
The from_iterable() function returns a flattened iterable that contains all the elements of the input iterable and only accepts a single iterable as an argument. All of the input iterable's elements should also be iterable.
Syntax
chain.from_iterable(iterable)
Example
The following program returns the difference of the sum of list elements that are missing from the input Matrix and vice versa using for loop and from_iterable() function –
# importing chain from itertools module from itertools import chain # input matrix inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] # printing input matrix print("Input Matrix: ", inputMatrix) # input target list targetList = [9, 2, 1, 10, 3, 1] # getting the flattened Matrix flattenMatrix = list(chain.from_iterable(inputMatrix)) # storing the sum of target list elements that are not in the flattened matrix listSum = 0 # travsering in the target list for i in targetList: # checking whether the current element is not in a flattened matrix if i not in flattenMatrix: # adding that element to the list sum variable if the condition is true listSum += i # storing the sum of matrix elements that are not in the target list matrixSum = 0 # travsering in the flattened matrix for i in flattenMatrix: # checking whether the current element is not in the target list if i not in targetList: # adding that element to matrix sum variable if the condition is true matrixSum += i # getting the absolute difference between matrix sum and list sum resultantDiff = abs(matrixSum - listSum) # printing the resultant difference print("Absolute difference between matrix sum and list sum:", resultantDiff)
Output
On executing, the above program will generate the following output –
Input Matrix: [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] Absolute difference between matrix sum and list sum: 36
Method 2: Using sum() & from_iterable() functions
sum() function − Returns the sum of all items in an iterable.
Example
The following program returns the difference of the sum of list elements that are missing from the input Matrix and vice versa using sum(), from_iterable() functions –
# importing chain from itertools module from itertools import chain inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] print("Input Matrix: ", inputMatrix) targetList = [9, 2, 1, 10, 3, 1] # getting the flattened matrix of the input matrix flattenMatrix = list(chain.from_iterable(inputMatrix)) # getting the sum of target list elements that are not in the flattened Matrix listSum = sum([i for i in targetList if i not in flattenMatrix]) # getting the sum of input matrix elements that are not in the target list matrixSum = sum([i for i in flattenMatrix if i not in targetList]) # getting the absolute difference between matrix sum and list sum resultantDiff = abs(matrixSum - listSum) print("Absolute difference between matrix sum and list sum:", resultantDiff)
Output
Input Matrix: [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] Absolute difference between matrix sum and list sum: 36
Method 3: Using the Counter() function
Counter() function − a sub-class that counts the hashable objects. It implicitly creates a hash table of an iterable when called/invoked.
Example
The following program returns the difference of the sum of list elements that are missing from the input Matrix and vice versa using the Counter() function –
# importing Counter from the collections module from collections import Counter inputMatrix = [[6, 3, 2], [5, 4, 1], [10, 8, 1], [15, 7, 2]] targetList = [9, 2, 1, 10, 3, 1] # empty list for storing flattened matrix flattenMatrix = [] # traversing through the input matrix and getting its flattened matrix for p in inputMatrix: for q in p: flattenMatrix.append(q) # getting the frequency of the flattened matrix matrixFreq = Counter(flattenMatrix) # getting the frequency of the target list listFreq = Counter(targetList) # storing the sum of target list elements that are not in the flattened matrix listSum = [] # traversing through the target list for p in targetList: # checking whether the current element is not in a matrix frequency list if p not in matrixFreq: # appending that element to the list sum if the condition is true listSum.append(p) # storing the sum of matrix elements that are not in the target list matrixSum = [] # travsering in the flattened matrix for p in flattenMatrix: # checking whether the current element is not in a list frequency list if p not in listFreq: # appending that element to the matrix sum matrixSum.append(p) # getting the absolute difference between matrix sum and list sum resultantDiff = abs(sum(matrixSum) - sum(listSum)) print("Absolute difference between matrix sum and list sum:", resultantDiff)
Output
Absolute difference between matrix sum and list sum: 36
Conclusion
This article taught us three different methods for determining the difference between the total number of list elements missing from the matrix and vice versa. We also learned how to use the chain.from_iterable() function to flatten the matrix or list of lists.
- Related Articles
- Python – Test String in Character List and vice-versa
- Adding Tuple to List and vice versa in Python
- Program to find the kth missing number from a list of elements in Python
- Find missing elements in List in Python
- Program to find sum of odd elements from list in Python
- Binary to decimal and vice-versa in Python
- Program to find the sum of elements that forms a Z shape on matrix in Python
- Find sum of frequency of given elements in the list in Python
- Find sum of elements in list in Python program
- Convert string to DateTime and vice-versa in Python
- Python program to find sum of elements in list
- How to replace upper triangular matrix with lower triangular matrix and vice versa in R?
- Converting A Linked List Into An Array And Vice Versa
- Find sum of all elements in a matrix except the elements in row and-or column of given cell in Python
- Python Program to Find the Cumulative Sum of a List where the ith Element is the Sum of the First i+1 Elements From The Original List
