2014-11-13 1 views
1

У меня есть список около 6000 (текстовых) объектов, которые я пытаюсь сохранить и передать из него (после манипуляции) значения в другой список. Я использую функции append и extend.Python list append and extend - slow speed

Программа отлично работает и дает мне желаемый результат, но он слишком медленный.

Как увеличить его производительность (без использования кода С в моей программе)?

+0

вы уверены, что эти действия являются узким местом? Прошли ли какие-либо профилирования? – jonrsharpe

ответ

1

Вы находитесь за модулем collections (входит в комплект поставки python).

Этот модуль реализует специализированные типы данных контейнеров, предоставляя альтернативы встроенным контейнерам общего назначения Python.

На вершине мы видим:

deque: список, как контейнер с быстрой добавляет или хлопков на обоих концах

from collections import deque 
items = deque([1,2,3]) 
items.pop() 
items.extend() 
items.append() 
+0

Добавление или появление с фронта - возможная причина медленности, но в этом вопросе нет ничего, что говорит о том, что код Наташи это делает. –

+0

, вы, должно быть, пропустили его, _ Я использую append и расширяю функции. – timeyyy

+1

«Добавление к фронту» выполняется с помощью insert(), а не append(). extend() - это серия присоединенных к задней части. Я ничего не вижу о добавлении элементов в другое место, кроме как в конце. –