У меня есть два списка list1
и list2
. Я нашел в stackoverflow очень простой метод для получения общих элементов в этих двух списках следующим образом: result = list(set(list1) & set(list2))
. К сожалению, при этом порядок элементов в результирующем списке не сохраняется.Общие элементы между двумя списками и сохранение порядка элементов в двух списках
Например:
list1 = ['a', 'e', 't', 'b', 'c']
list2 = ['e', 'b', 'a', 'c', 'n', 's']
Я хочу, чтобы результат (общие элементы), чтобы быть в таком порядке ['e', 'a', 'b', 'c']
. Поскольку, например, «e» находится в списке1 и в списке2 и находится в позиции 2 в списке1 и в позиции 1 в списке2, тогда как «a» находится в списке1 и в списке2 и находится в позиции 1 в списке1 и в позиции 3 в списке2, поэтому 'e' находится перед 'a', поскольку 2 + 1 < 1 + 3.
Итак, есть ли простой способ иметь общие элементы между двумя списками и сохранять порядок элементов?
какой заказ вы хотели бы предположить, что «e» и «t» были заменены в списке1? – wim
Каков ожидаемый результат для 'list1 = ['a', 'b']; песни2 = [ 'B', 'а'] '? Идя по вашему алгоритму, оба «a» и «b» имеют одинаковое позиционное значение «3», так что это на первом месте? – Kevin
@ Kevin. В этом случае это не имеет значения, если результат [a, b] или [b, a] – shn