well you can do something like this that uses list comprehension:
for g in (g for g in games if not g.score_ratio_h1):
g.score_ratio_h1 = avg_score_ratio_h1
it may be perhaps a bit faster... but strange :)
EDIT:
I agree with the two comments, however it may not be completely wasteful depending on the "if" condition, here an example:
lst = [0 for _ in xrange(708)]
for i in xrange(100000000):
if i**2 < 500000:
lst[i] += i
time:
real 0m12.906s
user 0m12.876s
sys 0m0.008s
versus:
lst = [0 for _ in xrange(708)]
for i in (i for i in xrange(100000000) if i**2 < 500000):
lst[i] += i
time:
real 0m8.857s
user 0m8.792s
sys 0m0.016s
I guess that depending on the condition, and the size of the loop this may be indeed wasteful, but in sometimes it may help to play around list comprehension, even in this case.