ordered = [item for item in ordered if item in unordered]
Этот метод создает новый список, основанный на старых, используя понимание списка Python.
Для больших объемов данных сначала следует превратить список неупорядоченный в набор, каклюди, предложенные в комментариях, имеют огромное значение в производительности, например:
unordered = set(unordered)
Эталон!
заказано : 5000 предметов, неупорядоченный : 1000 элементов
0,09561 с без набора
0,00042 с с набором
Для 10/2 элементов время практически одинаковое, поэтому всегда полезно использоватьустановить независимо от размера данных.