Python program to omit K length Rows
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 list test_list = [[ 4 , 7 ], [ 8 , 10 , 12 , 8 ], [ 10 , 11 ], [ 6 , 8 , 10 ]] # printing original list print ( "The original list is : " + str (test_list)) # initializing K K = 2 res = [] 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 list test_list = [[ 4 , 7 ], [ 8 , 10 , 12 , 8 ], [ 10 , 11 ], [ 6 , 8 , 10 ]] # printing original list print ( "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 res test_list = [[ 4 , 7 ], [ 8 , 10 , 12 , 8 ], [ 10 , 11 ], [ 6 , 8 , 10 ]] K = 2 result = omit_k_length_rows(test_list, K) print (result) # Output: [[8, 10, 12, 8], [6, 8, 10]] K = 3 result = 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)
Please Login to comment...