# Python – Row-wise element Addition in Tuple Matrix

Sometimes, while working with Python tuples, we can have a problem in which we need to perform Row-wise custom elements addition in Tuple matrix. This kind of problem can have application in data domains. Let’s discuss certain ways in which this task can be performed.

Input : test_list = [[(‘Gfg’, 3)], [(‘best’, 1)]] cus_eles = [1, 2]
Output : [[(‘Gfg’, 3, 1)], [(‘best’, 1, 2)]]

Input : test_list = [[(‘Gfg’, 6), (‘Gfg’, 3)]] cus_eles = [7]
Output : [[(‘Gfg’, 6, 7), (‘Gfg’, 3, 7)]]

Method #1: Using enumerate() + nested list comprehension The combination of above methods can be used to solve this problem. In this, we perform the task of adding elements using nested list comprehension and index iteration by enumerate().

## Python3

 `# Python3 code to demonstrate working of ` `# Row-wise element Addition in Tuple Matrix` `# Using enumerate() + list comprehension`   `# initializing list` `test_list ``=` `[[(``'Gfg'``, ``3``), (``'is'``, ``3``)], [(``'best'``, ``1``)], [(``'for'``, ``5``), (``'geeks'``, ``1``)]]`   `# printing original list` `print``("The original ``list` `is` `: " ``+` `str``(test_list))`   `# initializing Custom eles` `cus_eles ``=` `[``6``, ``7``, ``8``]`   `# Row-wise element Addition in Tuple Matrix` `# Using enumerate() + list comprehension` `res ``=` `[[sub ``+` `(cus_eles[idx], ) ``for` `sub ``in` `val] ``for` `idx, val ``in` `enumerate``(test_list)]`   `# printing result ` `print``("The matrix after row elements addition : " ``+` `str``(res)) `

Output :

The original list is : [[(‘Gfg’, 3), (‘is’, 3)], [(‘best’, 1)], [(‘for’, 5), (‘geeks’, 1)]] The matrix after row elements addition : [[(‘Gfg’, 3, 6), (‘is’, 3, 6)], [(‘best’, 1, 7)], [(‘for’, 5, 8), (‘geeks’, 1, 8)]]

Method #2 : Using zip() + list comprehension The combination of above functions can be used to solve this problem. In this, we perform the task of combining new row elements with respective rows using zip(), rather than enumerate().

## Python3

 `# Python3 code to demonstrate working of ` `# Row-wise element Addition in Tuple Matrix` `# Using zip() + list comprehension`   `# initializing list` `test_list ``=` `[[(``'Gfg'``, ``3``), (``'is'``, ``3``)], [(``'best'``, ``1``)], [(``'for'``, ``5``), (``'geeks'``, ``1``)]]`   `# printing original list` `print``("The original ``list` `is` `: " ``+` `str``(test_list))`   `# initializing Custom eles` `cus_eles ``=` `[``6``, ``7``, ``8``]`   `# Row-wise element Addition in Tuple Matrix` `# Using zip() + list comprehension` `res ``=` `[[(idx, val) ``for` `idx ``in` `key] ``for` `key,  val ``in` `zip``(test_list, cus_eles)]`   `# printing result ` `print``("The matrix after row elements addition : " ``+` `str``(res)) `

Output :

The original list is : [[(‘Gfg’, 3), (‘is’, 3)], [(‘best’, 1)], [(‘for’, 5), (‘geeks’, 1)]] The matrix after row elements addition : [[(‘Gfg’, 3, 6), (‘is’, 3, 6)], [(‘best’, 1, 7)], [(‘for’, 5, 8), (‘geeks’, 1, 8)]]

#### Approach#3: Using lambda

In this solution, we use a for loop to iterate over each row of the input list and a lambda function with map to add the corresponding element from the customer elements list to each tuple.

#### Algorithm

1. Initialize an empty list result_list to store the updated tuples.
2. Iterate over each row row and its index i in the input list test_list.
3. Use a lambda function with map to add the corresponding element from the cus_eles list to each tuple in row.
4. Append the updated row to result_list.
5. Return the result_list.

## Python3

 `test_list ``=` `[[(``'Gfg'``, ``3``)], [(``'best'``, ``1``)]]` `cus_eles ``=` `[``1``, ``2``]` `result_list ``=` `[]` `for` `i, row ``in` `enumerate``(test_list):` `    ``result_list.append(``list``(``map``(``lambda` `x: x``+``(cus_eles[i],), row)))` `print``(result_list)`

Output

`[[('Gfg', 3, 1)], [('best', 1, 2)]]`

Time complexity: O(n*m), where n is the number of rows in test_list and m is the maximum number of tuples in any row. This is because we need to iterate over each row and each tuple in the input list.

Space complexity: O(n*m), where n is the number of rows in test_list and m is the maximum number of tuples in any row. This is because we are creating a new list to store the updated tuples for each row.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!