def bisect_iter_to_list(pred, it):
    l1 = []
for i in it:
    if pred(i):
        l1.append(i)
else:
    l2 = [i]
l2.extend(it)
return l1, l2
bisect_iter_to_list(str.isalpha, iter(l))
как разделить список на два в точке, где предикат является первым False