LINUX.ORG.RU

История изменений

Исправление vvn_black, (текущая версия) :

Как-то так:

tasks = [...]
while tasks:
    task = tasks.pop(0)
    res = proceed(task)
    
    if res is Result.complete:
        continue

    if res is Result.replace:
        tasks.insert(0, task)
        
    if res is Result.after:
        tasks.insert(1, task)
    
    if res == Result.back:
        tasks.append(task)

Upd. Но мне не нравится сама задача, я за то, чтобы переделать на какую-то очередь. И уж точно против изменения коллекции при её итерации.

Исходная версия vvn_black, :

Как-то так:

tasks = [...]
while tasks:
    task = tasks.pop(0)
    res = proceed(task)
    
    if res is Result.complete:
        continue

    if res is Result.replace:
        tasks.insert(0, task)
        
    if res is Result.after:
        tasks.insert(1, task)
    
    if res == Result.back:
        tasks.append(task)