Open In App

Python – Subtract K from tuples list

Last Updated : 09 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




# Python3 code to demonstrate working of
# Subtract K from tuples list
# Using list comprehension
 
# initialize list
test_list = [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
 
# printing original list
print("The original list : " + str(test_list))
 
# initialize add element
K = 4
 
# Subtract K from tuples list
# Using list comprehension
res = [tuple(j - K for j in sub ) for sub in test_list]
 
# printing result
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




# Python3 code to demonstrate working of
# Subtract K from tuples list
# Using list comprehension + map() + lambda
 
# initialize list
test_list = [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
 
# printing original list
print("The original list : " + str(test_list))
 
# initialize add element
K = 4
 
# Subtract K from tuples list
# Using list comprehension + map() + lambda
res = [tuple(map(lambda ele : ele - K, sub)) for sub in test_list]
 
# printing result
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




# Python3 code to demonstrate working of
# Subtract K from tuples list
# Using numpy
   
# importing numpy
import numpy as np
   
# initialize list
test_list = [(1, 3, 4), (2, 4, 6), (3, 8, 1)]
   
# printing original list
print("The original list : " + str(test_list))
   
# initialize add element
K = 4
   
# Subtract K from tuples list
# Using numpy
res = [tuple(np.subtract(sub, K)) for sub in test_list]
   
# printing result
print("List after subtraction of K : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


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
Previous
Next
Share your thoughts in the comments

Similar Reads