Many times, while working with records, we can have a problem in which we need to change the value of tuple elements. This is a common problem while working with tuples. Let’s discuss certain ways in which N can be divided by Kth element of tuple in list.
Method #1: Using loop Using loops this task can be performed. In this, we just iterate the list to change the Kth element by predefined value N in code.
Python3
# Python3 code to demonstrate working of # Divide constant to Kth Tuple index # Using loop # Initializing list test_list = [( 4 , 5 , 6 ), ( 7 , 4 , 2 ), ( 9 , 10 , 11 )] # printing original list print ( "The original list is : " + str (test_list)) # Initializing N N = 3 # Initializing K K = 1 # Divide constant to Kth Tuple index # Using loop res = [] for i in range ( 0 , len (test_list)): res.append((test_list[i][ 0 ], test_list[i][K] / / N, test_list[i][ 2 ])) # printing result print ( "The tuple after dividing N to Kth element : " + str (res)) |
The original list is : [(4, 5, 6), (7, 4, 2), (9, 10, 11)] The tuple after dividing N to Kth element : [(4, 1, 6), (7, 1, 2), (9, 3, 11)]
Time complexity: O(n), where n is the length of the input list test_list.
Auxiliary space: O(n), since we are creating a new list res to store the modified tuples.
Method #2: Using list comprehension This method is having the same approach as the above method, just reduces lines of code using list comprehension functionality to make code compact by size.
Python3
# Python3 code to demonstrate working of # Divide constant to Kth Tuple index # Using list comprehension # Initializing list test_list = [( 4 , 5 , 6 ), ( 7 , 4 , 2 ), ( 9 , 10 , 11 )] # printing original list print ( "The original list is : " + str (test_list)) # Initializing N N = 3 # Initializing K K = 1 # Divide constant to Kth Tuple index # Using list comprehension res = [(a, b / / N, c) for a, b, c in test_list] # printing result print ( "The tuple after dividing N to Kth element : " + str (res)) |
The original list is : [(4, 5, 6), (7, 4, 2), (9, 10, 11)] The tuple after dividing N to Kth element : [(4, 1, 6), (7, 1, 2), (9, 3, 11)]
Time Complexity: O(n),The above code iterates through the list once, hence the time complexity is linear, i.e. O(n).
Space Complexity: O(n),The algorithm uses an additional list to store the result, thus consuming linear space which is O(n).
Method #3 :Using map() and lambda functions
The map() function can be used along with the lambda functions to change the value of a specific element in the tuple.
Python3
#Python3 code to demonstrate working of #Divide constant to Kth Tuple index #Using map() and lambda functions #Initializing list test_list = [( 4 , 5 , 6 ), ( 7 , 4 , 2 ), ( 9 , 10 , 11 )] #printing original list print ( "The original list is : " + str (test_list)) #Initializing N N = 3 #Initializing K K = 1 #Divide constant to Kth Tuple index #Using map() and lambda functions res = list ( map ( lambda x : (x[ 0 ], x[K] / / N, x[ 2 ]), test_list)) #printing result print ( "The tuple after dividing N to Kth element : " + str (res)) #This code is contributed by Edula Vinay Kumar Reddy |
The original list is : [(4, 5, 6), (7, 4, 2), (9, 10, 11)] The tuple after dividing N to Kth element : [(4, 1, 6), (7, 1, 2), (9, 3, 11)]
Time complexity: O(n), where n is the number of tuples in the list.
Auxiliary Space: O(n)
Method 4: Using the numpy library.
Step-by-step approach:
- Import the numpy library.
- Initialize the input list as a numpy array.
- Use the numpy.divide() function to divide the Kth column by N.
- Print the updated numpy array.
Python3
#Python3 code to demonstrate working of #Divide constant to Kth Tuple index #Using numpy import numpy as np #Initializing list test_list = [( 4 , 5 , 6 ), ( 7 , 4 , 2 ), ( 9 , 10 , 11 )] #printing original list print ( "The original list is : " + str (test_list)) #Initializing N N = 3 #Initializing K K = 1 #Converting the list to a numpy array arr = np.array(test_list) #Dividing Kth column by N arr[:, K] = np.divide(arr[:, K], N) #printing result print ( "The tuple after dividing N to Kth element : " + str (arr.tolist())) |
OUTPUT : The original list is : [(4, 5, 6), (7, 4, 2), (9, 10, 11)] The tuple after dividing N to Kth element : [[4, 1, 6], [7, 1, 2], [9, 3, 11]]
The time complexity for this approach would be O(n), where n is the number of tuples in the input list.
The auxiliary space complexity would be O(n), since we are creating a new numpy array to store the result.