У меня есть итератор result
в одной функции, и мне нужно вернуть итератор после внесения некоторых изменений в объекты в result
из этой функции. Я не хочу перебирать result
, так как это приводит к ухудшению производительности. Я хочу выполнить эту операцию «на лету» для каждого элемента в result
.Возвратите итератор после модификации
Это код, который выполняет итерацию по результату для выполнения этой операции.
sols = []
# Get rid of this loop
for sol in result:
sols.append(dict((symbols[abs(lit) - 1], lit > 0) for lit in sol))
# Return iterator object
return (sol for sol in sols)
Вы пробовали ключевое слово 'yield' http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do-in-python –
Я согласен с Микко, доходность будет намного проще –