Python – Modify Equal Tuple Rows

Sometimes, while working with Python Records, we can have a problem in which we need to perform the modification of element records on equality of records. This can have a problem in domains that involve data. Let’s discuss certain ways in which this task can be performed.

Input :
test_list = [[(12, 5)], [(13, 2)], [(6, 7)]]
test_row = [(13, 2)]
Output : [[(12, 5)], [(13, 8)], [(6, 7)]]

Input :
test_list = [[(12, 5), (7, 6)]]
test_row = [(13, 2)]
Output : [[(12, 5), (7, 6)]]

Method #1 : Using loop + enumerate()
The combination of above functions can be used to solve this problem. In this, we apply brute force for performing task of checking for equality and performing required modification.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of 
# Modify Equal Tuple Rows
# Using loop + enumerate()
  
# initializing list
test_list = [[(12, 5), (13, 6)], [(12, 2), (13, 2)]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check row 
test_row = [(12, 2), (13, 2)]
  
# Modify Equal Tuple Rows
# Using loop + enumerate()
# multiple y coordinate by 4
for idx, val in enumerate(test_list):
    if val == test_row:
        temp = []
        for sub in val:
            ele = (sub[0], sub[1] * 4)
            temp.append(ele)
        test_list[idx] = temp
          
# printing result 
print("List after modification : " + str(test_list)) 

chevron_right


Output :



The original list is : [[(12, 5), (13, 6)], [(12, 2), (13, 2)]]
List after modification : [[(12, 5), (13, 6)], [(12, 8), (13, 8)]]

 

Method #2 : Using list comprehension
This is yet another way in which this task can be performed. In this, we perform the task using list comprehension in a one-liner way similar to above method.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of 
# Modify Equal Tuple Rows
# Using list comprehension
  
# initializing list
test_list = [[(12, 5), (13, 6)], [(12, 2), (13, 2)]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check row 
test_row = [(12, 2), (13, 2)]
  
# Modify Equal Tuple Rows
# Using list comprehension
# multiple y coordinate by 4
res = [[(sub[0], sub[1] * 4) for sub in ele] if ele == test_row else ele for ele in test_list]
          
# printing result 
print("List after modification : " + str(res)) 

chevron_right


Output :

The original list is : [[(12, 5), (13, 6)], [(12, 2), (13, 2)]]
List after modification : [[(12, 5), (13, 6)], [(12, 8), (13, 8)]]



My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.