Using next() with a generator expression to simulate a break statement in a for loop. Something like this:

val = next((x for x in some_list if match(x)), default_val)

Which is the same as:

val = default_val
for x in some_list:
    if match(x):
        val = x

Commenter Emanuel Hoogeveen suggested the default_val, because otherwise the next() would raise a StopIteration if there were no matches in the list. He found the answer here on StackOverflow.

Thanks to @ashleyconnor for finding a bug in my code and submitting a pull request!