I am trying to become more familiar with the itertools module and have found a function called ifilter.
From what I understand, it filters
Your understanding is corret: the only difference is that ifilter returns an iterator, while using filter is like calling:
list(ifilter(...))
You may also be interested in what PEP 289 says about filter and ifilter:
List comprehensions greatly reduced the need for
filter()andmap(). Likewise, generator expressions are expected to minimize the need foritertools.ifilter()anditertools.imap(). [...]
Also note that ifilter became filter in Python-3 (hence removed from itertools).