a = [1, 2, 1, 4, 1, 1, 1, 1]
c = count()
list(takewhile(lambda x: next(c) < 3, (i for i in a if i == 1)))
c = count()
list(i if next(c) < 3 else next(iter([])) for i in a if i == 1)
Как ограничить размер понимания?