История изменений
Исправление soomrack, (текущая версия) :
а зачем там pop делать? не проще потом весь лист удалить? (очевидно извлечение из листа дорогая операция)
Это суть примера, про который я спрашивал выше, когда удаляем задания. Вообще-то удалить из списка это очень простая операция, обычно считается, что O(1), а вот из массива – да, дорогая O(n), собственно, этот пример косвенно свидетельствует, что тут не список, а массив…
А так то я привел пример говнокода для питона, который говнокодом во многих других языках не является, т.е. сделать такую вот запись дрянью это изобретение питона.
Причем цикл while не позволяет перебирать элементы, т.е. для перебора нужно его самостоятельно индексировать, в итоге если кто-то хочет бежать по списку и его модифицировать, то он естественно попробует for item in
и получит вот такое вот, но не поймет почему (и результат в два раза меньше ожиданий и скорость убийственно медленная)!
В целом этот пример питоно-говнокода дан исключительно, как пример простого кода, который я бы хотел понять как работает в деталях, какова сложность его вычислений и т.п.
PS: а если сделать for k, item in enumerate(my_list)
, то ничего не изменится, ни по выводу, ни по скорости. Потому что цикл for сам делает этот enumerate указано это или нет, кмк.
Исправление soomrack, :
а зачем там pop делать? не проще потом весь лист удалить? (очевидно извлечение из листа дорогая операция)
Это суть примера, про который я спрашивал выше, когда удаляем задания. Вообще-то удалить из списка это очень простая операция, обычно считается, что O(1), а вот из массива – да, дорогая O(n), собственно, этот пример косвенно свидетельствует, что тут не список, а массив…
А так то я привел пример говнокода для питона, который говнокодом во многих других языках не является, т.е. сделать такую вот запись дрянью это изобретение питона.
Причем цикл while не позволяет перебирать элементы, т.е. для перебора нужно его самостоятельно индексировать, в итоге если кто-то хочет бежать по списку и его модифицировать, то он естественно попробует for item in
и получит вот такое вот, но не поймет почему (и результат в два раза меньше ожиданий и скорость убийственно медленная)!
В целом этот пример питоно-говнокода дан исключительно, как пример простого кода, который я бы хотел понять как работает в деталях, какова сложность его вычислений и т.п.
Исходная версия soomrack, :
а зачем там pop делать? не проще потом весь лист удалить? (очевидно извлечение из листа дорогая операция)
Это суть примера, про который я спрашивал выше, когда удаляем задания. Вообще-то удалить из списка это очень простая операция, обычно считается, что O(1), а вот из массива – да, дорогая O(n), собственно, этот пример косвенно свидетельствует, что тут не список, а массив…
А так то я привел пример говнокода для питона, который говнокодом во многих других языках не является, т.е. сделать такую вот запись дрянью это изобретение питона.
Причем цикл while не позволяет перебирать элементы, т.е. для перебора нужно его самостоятельно индексировать, в итоге если кто-то хочет бежать по списку и его модифицировать, то он естественно попробует for item in
и получит вот такое вот, но не поймет почему!
В целом этот пример питоно-говнокода дан исключительно, как пример простого кода, который я бы хотел понять как работает в деталях, какова сложность его вычислений и т.п.