 Open in App
Not now

# Python | Remove first K elements matching some condition

• Last Updated : 15 Jan, 2023

Removal of elements in list can be performed using many inbuilt functions. Removing all or just a single occurrence removal both functions are present in Python library. This article discusses to remove just the first K occurrences of elements matching particular condition. Method #1 : Naive Method We can append the elements that are matching condition after K occurrences of elements have been done and hence would perform the task similar to the removal.

## Python3

 `# Python3 code to demonstrate``# to remove first K elements matching condition``# using Naive Method` `# initializing list``test_list ``=` `[``3``, ``5``, ``1``, ``6``, ``7``, ``9``, ``8``, ``5``]` `# printing original list``print` `("The original ``list` `is` `: " ``+` `str``(test_list))` `# using Naive Method``# to remove first K elements matching condition``# removes first 4 odd occurrences``counter ``=` `1``res ``=` `[]``for` `i ``in` `test_list:``    ``if` `counter > ``4` `or` `not` `(i ``%` `2` `!``=` `0``):``        ``res.append(i)``    ``else``:``        ``counter ``+``=` `1` `# printing result``print` `("The filtered ``list` `is` `: " ``+` `str``(res))`

Output:

```The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : [6, 9, 8, 5]```

Time Complexity: O(n)

Space Compelxity: O(n)

Method #2 : Using itertools.filterfalse() + itertools.count() This is different and elegant way to perform this particular task. It filters out all the numbers that become greater than K as counter reaches K and matches against the condition. This is one-liner and preferred method to achieve this task.

## Python3

 `# Python3 code to demonstrate``# to remove first K elements matching condition``# using itertools.filterfalse() + itertools.count()``from` `itertools ``import` `filterfalse, count` `# initializing list``test_list ``=` `[``3``, ``5``, ``1``, ``6``, ``7``, ``9``, ``8``, ``5``]` `# printing original list``print` `("The original ``list` `is` `: " ``+` `str``(test_list))` `# using itertools.filterfalse() + itertools.count()``# to remove first K elements matching condition``# removes first 4 odd occurrences``res ``=` `filterfalse(``lambda` `i, counter ``=` `count(): i ``%` `2` `!``=` `0` `and``                                ``next``(counter) < ``4``, test_list)` `# printing result``print` `("The filtered ``list` `is` `: " ``+` `str``(``list``(res)))`

Output:

```The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : [6, 9, 8, 5]```

Time Complexity: O(n)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up