Python – Subtract K from tuples list
Last Updated :
09 Apr, 2023
Sometimes, while working with data, we can have a problem in which we need to perform update operation on tuples. This can have application across many domains such as web development. Let’s discuss certain ways in which subtraction of K can be performed.
Method #1 : Using list comprehension This is shorthand to brute function that can be applied to perform this task. In this, we iterate for each element of each tuple to perform bulk subtraction of K of data.
Python3
test_list = [( 1 , 3 , 4 ), ( 2 , 4 , 6 ), ( 3 , 8 , 1 )]
print ( "The original list : " + str (test_list))
K = 4
res = [ tuple (j - K for j in sub ) for sub in test_list]
print ( "List after subtraction of K : " + str (res))
|
Output
The original list : [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
List after subtraction of K : [(-3, -1, 0), (-2, 0, 2), (-1, 4, -3)]
Time Complexity: O(n*n), where n is the length of the tuple list. This is because we’re using the list comprehension which has a time complexity of O(n*n) in the worst case.
Auxiliary Space: O(n), as we’re using additional space res other than the input list itself with the same size of input list.
Method #2 : Using map() + lambda + list comprehension The combination of above functions can be used to perform this task. In this, we just iterate for all elements using map() and extend logic of update using lambda function.
Python3
test_list = [( 1 , 3 , 4 ), ( 2 , 4 , 6 ), ( 3 , 8 , 1 )]
print ( "The original list : " + str (test_list))
K = 4
res = [ tuple ( map ( lambda ele : ele - K, sub)) for sub in test_list]
print ( "List after subtraction of K : " + str (res))
|
Output
The original list : [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
List after subtraction of K : [(-3, -1, 0), (-2, 0, 2), (-1, 4, -3)]
Time Complexity: O(n*n) where n is the number of elements in the string list. The map() + lambda + list comprehension is used to perform the task and it takes O(n*n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res test_list.
Method #3 : Using numpy
We can use numpy module to perform this task. In this, we perform subtraction of K using numpy.subtract() method.
Python3
import numpy as np
test_list = [( 1 , 3 , 4 ), ( 2 , 4 , 6 ), ( 3 , 8 , 1 )]
print ( "The original list : " + str (test_list))
K = 4
res = [ tuple (np.subtract(sub, K)) for sub in test_list]
print ( "List after subtraction of K : " + str (res))
|
Output :
The original list : [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
List after subtraction of K : [(-3, -1, 0), (-2, 0, 2), (-1, 4, -3)]
Time complexity: O(N)
Auxiliary Space: O(N)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...