@FunkyBob I'm always torn between using a walrus in this case or using a generator expression followed by a list comprehension. I do both, and sometimes one seems more readable than the other and sometimes the other seems more readable. 🤷
initial_results = (
term
for item in sequence
term := item.do_something()
)
result = [
term
for item in initial_results
if term != None
]