Given a Matrix, remove rows with length K.
Input : test_list = [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]], K = 2
Output : [[8, 10, 12, 8], [6, 8, 10]]
Explanation : [4, 7] and [10, 11] omitted as length 2 rows.Input : test_list = [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]], K = 3
Output : [[4, 7], [8, 10, 12, 8], [10, 11]]
Explanation : [6, 8, 10] omitted as length 3 rows.
Method #1 : Using loop + len()
In this, we check for the length of each row using len(), if found to be equal to K, that row is omitted from Matrix.
Python3
# Python3 code to demonstrate working of # Omit K length Rows# Using loop + len()# initializing listtest_list = [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]]# printing original listprint("The original list is : " + str(test_list))# initializing K K = 2res = []for row in test_list: # checking rows not K length if len(row) != K : res.append(row)# printing result print("Filtered Matrix : " + str(res)) |
Output:
The original list is : [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]] Filtered Matrix : [[8, 10, 12, 8], [6, 8, 10]]
Time Complexity: O(n*m)
Auxiliary Space: O(k)
Method #2 : Using filter() + lambda + len()
In this, we use filter() to extract rows with lengths other than K. The lambda function is used to render length computation logic.
Python3
# Python3 code to demonstrate working of # Omit K length Rows# Using filter() + lambda + len()# initializing listtest_list = [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]]# printing original listprint("The original list is : " + str(test_list))# initializing K K = 4# getting elements with length other than K res = list(filter(lambda row : len(row) != K, test_list))# printing result print("Filtered Matrix : " + str(res)) |
Output:
The original list is : [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]] Filtered Matrix : [[4, 7], [10, 11], [6, 8, 10]]
Time Complexity: O(n*m)
Auxiliary Space: O(k)
Using slicing and concatenation:
Approach:
Define a function named “omit_k_length_rows” that takes two arguments, a list of lists named “test_list” and an integer named “K”.
Create an empty list named “res” to store the filtered results.
Iterate through each list in “test_list” using a for loop.
Check if the length of the current list is not equal to “K” using the “len” function and the “!=” operator.
If the length is not equal to “K”, add the current list to the “res” list using the “+=” operator and list concatenation.
Return the filtered “res” list.
Use the function to solve the given input and print the output.
Python3
def omit_k_length_rows(test_list, K): res = [] for row in test_list: if len(row) != K: res += [row] return restest_list = [[4, 7], [8, 10, 12, 8], [10, 11], [6, 8, 10]]K = 2result = omit_k_length_rows(test_list, K)print(result) # Output: [[8, 10, 12, 8], [6, 8, 10]]K = 3result = omit_k_length_rows(test_list, K)print(result) # Output: [[4, 7], [8, 10, 12, 8], [10, 11]] |
[[8, 10, 12, 8], [6, 8, 10]] [[4, 7], [8, 10, 12, 8], [10, 11]]
Time Complexity: O(n*m), where n is the number of rows and m is the maximum length of the rows
Auxiliary Space: O(n)
