def partition(li, f, a=[], b=[]):
    if len(li) == 0:
        return a, b
    x, *xs = li
    if f(x): 
        return partition(xs, f, [*a, x], [*b])
    return partition(xs, f, [*a], [*b, x])

li = [1,2,3,4,5]
print(partition(li, lambda x: x % 2))

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: