Open In App

Python | Divide constant to Kth Tuple index

Last Updated : 04 May, 2023
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

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)) 

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)]

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)) 

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)]

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

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)]

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.


Next Article
Practice Tags :

Similar Reads