VOOZH about

URL: https://www.geeksforgeeks.org/python/python-absolute-tuple-summation/

⇱ Python - Absolute Tuple Summation - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Python - Absolute Tuple Summation

Last Updated : 5 May, 2023

Sometimes, while working with Python tuples, we can have a problem in which we need to perform the summation of absolute values of intermediate tuple elements. This kind of problem can have application in many domains such as web development. Let's discuss certain ways in which this task can be performed.

Input : test_list = [(-7, -8), (-5, -6)] Output : [15, 11] Input : test_list = [(-1, -2, -4)] Output : [7]

Method #1 : Using sum() + list comprehension + abs() The combination of above functions can be used to solve this problem. In this, we perform the task of computing sum using sum(), abs() for absolute values, and list comprehension to iterate through the list and inside each tuple, generator expression is used to iterate. 

Output : 
The original list is : [(7, -8), (-5, -6), (-7, 2), (6, 8)]
The absolute sum list: [15, 11, 9, 14]

  Method #2 : Using list comprehension + sum() + map() The combination of above functions offer an alternative to solve this problem. In this, we perform the task of computing sum of entire tuple elements using map() rather than generator expression. 

Output : 
The original list is : [(7, -8), (-5, -6), (-7, 2), (6, 8)]
The absolute sum list: [15, 11, 9, 14]

Method #3 : Using recursion+abs()

In the above example, the given list is test_list = [(-7, -8), (-5, -6)]. In the first iteration of the loop, the absolute values of -7 and -8 are taken and stored in the abs_tup variable as (7, 8). The sum of these absolute values is 15, which is appended to the result list. In the second iteration, the absolute values of -5 and -6 are taken and stored in the abs_tup variable as (5, 6). The sum of these absolute values is 11, which is appended to the result list. Finally, the result list is returned as the output.


Output
[15, 11]

Time complexity:  O(n*m)

Auxiliary Space:  O(n)

Method #4 : Using nested for loops

Approach

  1. Initiated for loop to traverse list of tuples
  2. Initiate another for loop inside above loop to traverse each tuple
  3. With in for loop if tuple element is less than zero multiply with -1 and find the sum of elements of tuple
  4. Add the sum to output list
  5. Display output list

Output
The original list is : [(7, -8), (-5, -6), (-7, 2), (6, 8)]
The absolute sum list: [15, 11, 9, 14]

Time Complexity : O(n*m) n - length of tuples list m- length of each tuple

Auxiliary Space : O(n)

Method #5 : Using numpy:

Algorithm:

  1. Initialize the test_list with tuples.
  2. Use np.abs() function to calculate the absolute values of the tuples in the test_list.
  3. Use np.sum() function to calculate the sum of absolute values of each tuple across the rows (axis=1) of the array.
  4. Assign the result to the variable 'res'.
  5. Print the original list an

Output:

The original list is : [(7, -8), (-5, -6), (-7, 2), (6, 8)]
The absolute sum list: [15 11  9 14]

Time Complexity:
The time complexity of this code is O(n), where n is the length of the test_list. The np.abs() and np.sum() functions have a complexity of O(n).
Auxiliary Space:
The space complexity of this code is O(n), where n is the length of the test_list. This is due to the creation of the numpy array 'res' which stores the absolute sum of each tuple.

Method #6 : Using lambda function and map()

  1. Initialize the list of tuples.
  2. Define a lambda function that takes a tuple as input and returns the absolute sum of its elements.
  3. Use the map() function to apply the lambda function to each tuple in the list, and store the results in a new list.
  4. Print the original list and the resulting list of absolute sums.

Output
The original list is : [(7, -8), (-5, -6), (-7, 2), (6, 8)]
The absolute sum list: [15, 11, 9, 14]

Time complexity: O(n)
Auxiliary space: O(n)

Comment