Open In App

Python program to omit K length Rows

Last Updated : 04 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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]]


Output

[[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)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads