Как сделать эту функцию Python еще быстрее, обработка списковPython

Программы на Python
Anonymous
Как сделать эту функцию Python еще быстрее, обработка списков

Сообщение Anonymous »

Я задавал вопрос Hackerrank (я уже закончил этот тест, спрашиваю просто потому, что мне любопытно).
Большинство тестовых случаев прошли успешно, но некоторые сказали, что это заняло слишком много времени, поэтому мне пришлось оптимизировать мой код. Я предполагаю, что это означает, что мое решение работает правильно, но слишком медленно.
Идея состоит в том, что вы берете два списка.
  • Один исходный элемент (целые положительные числа), элементы = [2, 1, 1, 4, 3]
  • Второй список запросов (целые положительные и отрицательные числа), запрос = [- 1, 2, -3, 1]
Вам приходится обрабатывать каждый запрос. Если текущий запрос является положительным целым числом, вы просто добавляете его в конец списка элементов. Если текущий запрос представляет собой отрицательное целое число, это означает, что вам нужно удалить первое появление этого абсолютного значения в списке элементов.
Это мой код:

Код: Выделить всё

def process_orders(query, items):
for q in query:
if q > 0:
items.append(q)
else:
q *= -1
items.remove(q)

return items
Как это сделать быстрее?
Спасибо
Я удалил несколько ненужных дополнительных циклов. Я даже пробовала словари, но становилось хуже.

Подробнее здесь: https://stackoverflow.com/questions/786 ... processing

Вернуться в «Python»