Форум сайта python.su
Доброго времени суток.
А как оно быстрее будет?
вот например у меня есть лист
будет ли быстрее его хлопнуть так
del myList
del myList[:]
Отредактировано (Окт. 9, 2008 13:06:45)
Офлайн
Не знаю что будет быстрей, но в любом случае это не одно и то же. Во втором варианте переменная остается в пространстве имен
Офлайн
то різні речі: очистити і видалити;
швидкість впевнений плюс/мінус така сама.
Для списку (a - ListObject):
очистка:
....
PyObject **item = a->ob_item;
i = a->ob_size;
a->ob_size = 0;
a->ob_item = NULL;
a->allocated = 0;
while (--i >= 0) {
Py_XDECREF(item[i]);
}
PyMem_FREE(item);
...
....
i = op->ob_size;
while (--i >= 0) {
Py_XDECREF(op->ob_item[i]);
}
PyMem_FREE(op->ob_item);
....
while 1:
a = {}
....
a.clear()
Отредактировано (Окт. 9, 2008 14:03:43)
Офлайн
iceВначале надо определиться чего вы хотите добиться.
будет ли быстрее его хлопнуть так
Офлайн
Пишу под симбиан.
Есть одна операция, где работа идет с большим списком, этот список периодически приходятся обновлять с нуля
добиться хочу максимальной скорости в удалении/наполнении, а то симбиан сам по себе не такой уж расторопный
crchemist спасибо, я так и подумал :) но были сомнения по поводу листа и его
Отредактировано (Окт. 9, 2008 17:46:00)
Офлайн
iceдивись в Python/Objects/listobject.c на методи __getslice__ and __setslice__ . Коли в __setslice__ замість value передається NULL - це означає то саме що і __delsice__
но были сомнения по поводу листа и его
Офлайн